initial commit of some ideas, with original tutorial data, to be replaced
This commit is contained in:
parent
035737c993
commit
f4340a5b8c
5 changed files with 129 additions and 0 deletions
6
.env
Normal file
6
.env
Normal file
|
@ -0,0 +1,6 @@
|
|||
POSTGRES_USER=postgres
|
||||
POSTGRES_PASSWORD=postgres
|
||||
POSTGRES_DB=postgres
|
||||
|
||||
DB_ANON_ROLE=anon
|
||||
DB_SCHEMA=public
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.backup
|
41
RoadMap
Normal file
41
RoadMap
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Roadmap
|
||||
|
||||
## Functionality
|
||||
|
||||
For a given Mastodon user, periodically request the list of followed and
|
||||
followers including number of each and the user
|
||||
|
||||
|
||||
## Authentication
|
||||
|
||||
A Mastodon user uses the app to specify a Mastodon handle and server. On
|
||||
request, the user authorises the app, returning the user to app which then
|
||||
starts to process data, creating the starting point.
|
||||
|
||||
## Data Objects for a user
|
||||
|
||||
* Followers: a record of each follower including address (@handle@server), full name, and date of follow
|
||||
(addition?) and unfollow (if any).
|
||||
* Posts: a record of each post including id, timestamp, and (sanitised?) content
|
||||
* Boosts: a record of each boost, user, post id, number users followers
|
||||
* Likes: a record of each like, user, post id
|
||||
* Mentions: a record of each mention including post ID
|
||||
|
||||
|
||||
### Derived Data
|
||||
|
||||
* current number of followers
|
||||
* servers with followers
|
||||
* new followers in past period (hour, day, week)
|
||||
* lost followers in past period (hour, day, week)
|
||||
* most boosted post
|
||||
* most liked post
|
||||
* post seen by most people (boosts * number of followers of each booster)
|
||||
|
||||
## Development Technologies
|
||||
|
||||
My goal with this app is to exercise some technologies I've long wanted to get
|
||||
experience with:
|
||||
- Svelte
|
||||
- SvelteKit
|
||||
- PostgREST (PostgreSQL + a REST framework)
|
15
docker-compose.override.yml
Normal file
15
docker-compose.override.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
##############
|
||||
# swagger-ui #
|
||||
##############
|
||||
swagger-ui:
|
||||
container_name: swagger-ui
|
||||
image: swaggerapi/swagger-ui:latest
|
||||
ports:
|
||||
- "127.0.0.1:8085:8080"
|
||||
environment:
|
||||
- API_URL=http://localhost:3000/
|
||||
restart: unless-stopped
|
66
docker-compose.yml
Normal file
66
docker-compose.yml
Normal file
|
@ -0,0 +1,66 @@
|
|||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
################
|
||||
# postgrest-db #
|
||||
################
|
||||
postgrest-db:
|
||||
container_name: postgrest-db
|
||||
image: postgres:alpine
|
||||
ports:
|
||||
- "127.0.0.1:5432:5432"
|
||||
environment:
|
||||
- POSTGRES_USER=${POSTGRES_USER}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- POSTGRES_DB=${POSTGRES_DB}
|
||||
- DB_ANON_ROLE=${DB_ANON_ROLE}
|
||||
- DB_SCHEMA=${DB_SCHEMA}
|
||||
volumes:
|
||||
# anything in initdb directory is created in the database
|
||||
# see "How to extend this image" section at https://hub.docker.com/r/_/postgres/
|
||||
- ".config/initdb:/docker-entrypoint-initdb.d"
|
||||
networks:
|
||||
- postgrest-backend
|
||||
restart: unless-stopped
|
||||
|
||||
##################
|
||||
# postgrest-demo #
|
||||
##################
|
||||
postgrest-demo:
|
||||
container_name: postgrest-demo
|
||||
image: nginx:mainline-alpine
|
||||
ports:
|
||||
- "127.0.0.1:8084:80"
|
||||
volumes:
|
||||
# anything in html directory is hosted via nginx
|
||||
- ".demo/html:/usr/share/nginx/html"
|
||||
restart: unless-stopped
|
||||
|
||||
#############
|
||||
# postgrest #
|
||||
#############
|
||||
postgrest:
|
||||
container_name: postgrest
|
||||
image: postgrest/postgrest:latest
|
||||
ports:
|
||||
- "127.0.0.1:3000:3000"
|
||||
# Available environment variables documented here:
|
||||
# https://postgrest.org/en/latest/configuration.html#environment-variables
|
||||
environment:
|
||||
# The standard connection URI format, documented at
|
||||
# https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING
|
||||
- PGRST_DB_URI=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgrest-db:5432/${POSTGRES_DB}
|
||||
# The name of which database schema to expose to REST clients
|
||||
- PGRST_DB_SCHEMA=${DB_SCHEMA}
|
||||
# The database role to use when no client authentication is provided
|
||||
- PGRST_DB_ANON_ROLE=${DB_ANON_ROLE}
|
||||
# Overrides the base URL used within the OpenAPI self-documentation hosted at the API root path
|
||||
- PGRST_OPENAPI_SERVER_PROXY_URI=http://localhost:3000
|
||||
networks:
|
||||
- postgrest-backend
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
postgrest-backend:
|
||||
driver: bridge
|
Loading…
Reference in a new issue