The app is currently hosted here
Option 1: Run locally with Docker
# Clone repository
git clone git@github.com:jessicasantosb/AWS_FS_ABR25_D03_COMPASS_Desafio3_GameList.git
cd AWS_FS_ABR25_D03_COMPASS_Desafio3_GameList
# Set up environment variables
echo "PORT=8888" > backend/.env
echo "JWT_SECRET=your_secret_key" >> backend/.env
echo "DATABASE_URL=postgresql://user:password@db:5432/gamelist" >> backend/.env
echo "FRONTEND_URL='http://localhost:5173'" >> backend/.env
echo "VITE_API_URL=/api" > frontend/.env
# Start containers
docker compose up -d --build
- Access on http://localhost
- To run the frontend locally without Docker, you can use Vite’s proxy to http://localhost:8888 on port 5173 (see vite.config.js).
Option 2: Deploy on EC2 with AWS account
# On Ubuntu EC2 instance:
# Install Docker, add official GPG key and create the docker group and add your user
# Create a key pair and add to your Github
# Clone repository
git clone git@github.com:jessicasantosb/AWS_FS_ABR25_D03_COMPASS_Desafio3_GameList.git
cd AWS_FS_ABR25_D03_COMPASS_Desafio3_GameList
# Set up environment variables
echo "PORT=8888" > backend/.env
echo "JWT_SECRET=your_secret_key" >> backend/.env
echo "DATABASE_URL=postgresql://user:password@db:5432/gamelist" >> backend/.env
echo "FRONTEND_URL=http://$(you-public-IPv4-here)" >> backend/.env
echo "VITE_API_URL=/api" > frontend/.env
# Start containers
sudo docker compose up -d --build
- Access with your public DNS available on AWS console
- Clean Codebase: Maintainable and high-performance code
- Containerized Architecture: Docker containers for each service
- Reverse Proxy: Nginx for efficient routing and load handling
📂 game-list
┣ 📂 backend # Backend API (Node.js + Express)
┣ 📂 frontend # Frontend (React + Vite)
┣ 📂 nginx # Nginx configuration
┣ 📄 docker-compose.yml # Docker Compose configuration
┣ 📄 Dockerfile # Root Dockerfile (orchestration)
┣ 📄 .gitignore # Git ignore rules
┣ 📄 .dockerignore # Docker ignore rules
┗ 📄 README.md # Project documentation
📂 frontend
┣ 📂 src # Application source code
┃ ┣ 📂 components # Reusable UI components
┃ ┣ 📂 pages # Application pages (routes)
┃ ┣ 📂 services # API requests and business logic
┃ ┣ 📂 utils # Helper functions and utilities
┃ ┗ 📄 main.tsx # Application entry point
┣ 📄 .env
┣ 📄 .env.example
┣ 📄 .prettierrc
┣ 📄 Dockerfile
┣ 📄 eslint.config.js
┣ 📄 package.json
📂 backend
┣ 📂 src # Backend source code
┃ ┣ 📂 controllers # Request handlers
┃ ┣ 📂 models # Database models
┃ ┣ 📂 routes # API routes
┃ ┣ 📂 services # Business logic
┃ ┗ 📄 index.ts # Entry point
┣ 📄 package.json
┣ 📄 .env.example
┗ 📄 Dockerfile
Backend: Node.js, Express, TypeScript, JWT, Bcrypt and MongoDB + Mongoose
Frontend: React, Vite, Axios, TypeScript, JWT-decode, Tanstack Query and Zod
Dev Tools: ESLint and Prettier
Infrastructure: Docker and Nginx