Skip to content

jessicasantosb/game-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Game List

Docker Node.js React TypeScript MongoDB


🚀 Quick Access

The app is currently hosted here


⚙️ Installation Options

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

Notes


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

Notes

  • Access with your public DNS available on AWS console

🔍 Key Features

  • Clean Codebase: Maintainable and high-performance code
  • Containerized Architecture: Docker containers for each service
  • Reverse Proxy: Nginx for efficient routing and load handling

📂 Project Structure

Root

📂 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

📂 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

📂 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

🛠 Tech Stack

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

About

Organize all your games in one place! Add custom categories, platforms, and track your progress with status updates.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors