Una plataforma web para explorar videojuegos, ver su detalle, gestionar favoritos y navegar por un catálogo paginado.
El proyecto está construido con una arquitectura full-stack moderna:
- Frontend: React + Vite + TypeScript + TailwindCSS
- Backend: Node.js + Express
- Base de datos: PostgreSQL
- Contenedores: Docker + Docker Compose
video-games-platform
│
├── backend
│ ├── src
│ ├── routes
│ ├── config
│ ├── seed.js
│ ├── package.json
│ └── Dockerfile
│
├── frontend
│ ├── src
│ ├── components
│ ├── pages
│ ├── services
│ ├── package.json
│ └── Dockerfile
│
├── docker-compose.yml
└── README.md
Antes de ejecutar el proyecto necesitas instalar:
- Node.js (v18 o superior)
- Docker
- Docker Compose
- PostgreSQL (si usas base de datos local)
El backend utiliza variables de entorno.
Archivo:
backend/.env
Ejemplo:
PORT=3000
DB_HOST=host.docker.internal
DB_PORT=5432
DB_NAME=videogames
DB_USER=postgres
DB_PASSWORD=postgres
JWT_SECRET=super_secret_jwt_key_123
BCRYPT_SALT_ROUNDS=10
Desde la raíz del proyecto:
docker compose up --build
Esto levantará:
- frontend → http://localhost:5173
- backend → http://localhost:3000
Debes tener una base de datos PostgreSQL llamada:
videogames
Ejemplo SQL:
CREATE DATABASE videogames;El proyecto incluye un script que inserta más de 100 videojuegos en la base de datos para poder probar:
- paginación
- catálogo
- vista detalle
Ejecutar el seed desde el contenedor backend:
docker exec -it games-api node seed.js
Si ejecutas el backend sin Docker:
node backend/seed.js
GET /api/games?page=1&limit=12
Respuesta:
{
data: [...],
total: 120,
page: 1,
totalPages: 10
}
GET /api/games/:id
El frontend permite:
- explorar catálogo de videojuegos
- paginación
- ver detalle del juego
- login / signup
- interfaz responsive
Ejecutar frontend manualmente:
cd frontend
npm install
npm run dev
El backend está construido con Express.
Ejecutar manualmente:
cd backend
npm install
npm run dev
La aplicación está diseñada para funcionar en:
- móvil
- tablet
- laptop
- pantallas ultra-anchas
Utilizando TailwindCSS Grid responsive.
Frontend
- React
- Vite
- TailwindCSS
- Axios
- React Router
Backend
- Node.js
- Express
- PostgreSQL
- JWT
- Bcrypt
Infraestructura
- Docker
- Docker Compose
✔ Catálogo de videojuegos ✔ Paginación ✔ Vista detalle de juego ✔ Login / Signup ✔ API REST ✔ Seed automático de juegos ✔ Interfaz responsive
- Sistema de favoritos persistente
- Buscador de videojuegos
- Filtros por género
- Recomendaciones
- Banner de juegos destacados
- Autenticación OAuth
Proyecto desarrollado como parte de un TFM / proyecto full-stack para explorar arquitecturas modernas con React, Node y Docker.