TypeScript NestJS Next.js Node.js ESLint Prettier Docker PostgreSQL Redis Nginx Firebase
graph BT
subgraph Externals[<b>Externals</b>]
FirebaseStorage[<b>Firebase Storage</b>]
RAWG[<b>RAWG Video Games Database API</b>]
Weglot[<b>Weglot</b>]
end
subgraph App[<b>App</b>]
subgraph Frontend[<b>Frontend</b>]
Website[<b>Website</b><br /><ul><li>Next.js</li><li>Redux</li></ul>]
end
subgraph Backend[<b>Backend</b>]
API[<b>API</b><br /><ul><li>NestJS</li><li>Express</li><li>Prisma</li></ul>]
Postgres[<b>PostgreSQL</b><br /><i>Store data</i>]
Redis[<b>Redis</b><br /><i>Store sessions</i>]
API <--> Postgres
API <--> Redis
end
Website <-- HTTP/HTTPS --> API
Nginx[<b>Nginx</b>]
Nginx --> API
Nginx --> Website
end
Client[<b>Client</b>]
Client <-- HTTP/HTTPS --> Nginx
FirebaseStorage <-- HTTP/HTTPS --> API
RAWG <-- HTTP/HTTPS --> API
Weglot <--> Frontend
graph BT
User[<b>user</b><br /><ul><li>uuid</li><li>username</li><li>display_name</li><li>email</li><li>password</li><li>created_at</li><li>updated_at</li><li>deleted_at</li></ul>]
Game[<b>game</b><ul><li>uuid</li><li>rawg_id</li><li>slug</li><li>name</li><li>created_at</li><li>updated_at</li><li>deleted_at</li></ul>]
Save[<b>save</b><ul><li>uuid</li><li>author_uuid</li><li>game_uuid</li><li>title</li><li>description</li><li>download_url</li><li>created_at</li><li>updated_at</li><li>deleted_at</li></ul>]
SaveUpvote[<b>save_upvote</b><ul><li>user_uuid</li><li>save_uuid</li><li>type</li><li>created_at</li><li>updated_at</li></ul>]
User <-- 1 - * --> Save
Game <-- 1 - * --> Save
User <--- SaveUpvote
SaveUpvote ---> Save
- Docker
git clone --recurse-submodules https://github.com/FiestaTheNewbieDev/share-ur-save.git