GameHub es un sistema web para la gestión de videojuegos, que permite administrar inventario, realizar ventas y alquileres, registrar devoluciones y consultar el historial de transacciones, todo desde una interfaz moderna, responsive y segura.
El proyecto sigue una arquitectura full-stack, con backend y frontend desacoplados, autenticación mediante JWT y despliegue en la nube.
-
Frontend (Vercel)
👉 https://gamehub-six-beta.vercel.app -
Backend (Render)
👉 Desplegado en Render mediante Docker
- Registrar videojuegos
- Actualizar videojuegos
- Eliminar videojuegos
- Visualización en grilla con:
- Título
- Género
- Plataforma
- Precio de venta
- Precio de alquiler
- Stock
- Imagen
- Venta de videojuegos
- Alquiler de videojuegos
- Registro de devoluciones (solo alquileres)
- Actualización automática del stock
En cada venta o alquiler se registra:
- Cédula
- Nombre
- Dirección
- Teléfono
- Historial completo de transacciones
- Búsqueda de videojuegos por diferentes criterios
- El stock disminuye al realizar una venta o alquiler.
- En alquileres, el stock se restablece al registrar la devolución.
- No se permiten transacciones sin stock disponible.
- Todas las transacciones deben estar asociadas a un cliente.
- Grilla visual de videojuegos con imagen incluida.
- Diseño responsive, minimalista y atractivo.
- Construida con React + Tailwind CSS.
- Java 17+
- Spring Boot
- Spring Security
- JWT (JSON Web Token)
- JPA / Hibernate
- MySQL
- Docker
- React
- Tailwind CSS
- HTML5
- JavaScript (ES6+)
- Vite
- Autenticación basada en JWT
- Protección de endpoints con Spring Security
- Acceso controlado a las operaciones del sistema
El backend está contenedorizado con Docker para facilitar el despliegue y la portabilidad del entorno.
- Imagen Docker construida a partir del proyecto Spring Boot
- Utilizada para el despliegue en Render
- Variables sensibles gestionadas mediante .env
El backend utiliza perfiles de Spring Boot para manejar diferentes entornos:
dev→ Desarrollo localpro→ Produccióndefault→ Configuración estándar
application.propertiesapplication-dev.propertiesapplication-pro.properties
Se utiliza un archivo .env para manejar:
- Credenciales de base de datos
- Claves JWT
- Configuración sensible del sistema
⚠️ El archivo.envno debe subirse al repositorio.
- MySQL
- Modelo relacional orientado a:
- Videojuegos
- Clientes
- Transacciones (ventas y alquileres)
- Clonar el repositorio
- Entrar al directorio del backend
- Crear el archivo
.envcon las variables necesarias - Seleccionar el perfil deseado:
spring.profiles.active=dev
- Ejecutar la aplicación:
mvn spring-boot:run
- Entrar al directorio del frontend
- Crear el archivo
.env - Definir la variable de entorno con la URL del backend:
VITE_API_URL=http://localhost:8080
- Instalar dependencias:
npm install
- Ejecutar la aplicación:
npm run dev