Skip to content

Sistema full-stack de gestión de videojuegos con ventas, alquileres, autenticación JWT y despliegue en la nube.

Notifications You must be signed in to change notification settings

ilson28/Gamehub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

271 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎮 GameHub – Sistema de Gestión de Videojuegos

Spring Boot Java React Tailwind CSS Docker MySQL JWT Vercel Render


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.


🌐 Demo en producción


📌 Funcionalidades

🎯 Gestión de videojuegos

  • Registrar videojuegos
  • Actualizar videojuegos
  • Eliminar videojuegos
  • Visualización en grilla con:
    • Título
    • Género
    • Plataforma
    • Precio de venta
    • Precio de alquiler
    • Stock
    • Imagen

💰 Ventas y alquileres

  • Venta de videojuegos
  • Alquiler de videojuegos
  • Registro de devoluciones (solo alquileres)
  • Actualización automática del stock

👤 Información del cliente por transacción

En cada venta o alquiler se registra:

  • Cédula
  • Nombre
  • Dirección
  • Teléfono

📜 Historial y búsquedas

  • Historial completo de transacciones
  • Búsqueda de videojuegos por diferentes criterios

🧠 Reglas de negocio

  • 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.

🖥️ Interfaz de usuario

  • Grilla visual de videojuegos con imagen incluida.
  • Diseño responsive, minimalista y atractivo.
  • Construida con React + Tailwind CSS.

🛠️ Tecnologías utilizadas

Backend

  • Java 17+
  • Spring Boot
  • Spring Security
  • JWT (JSON Web Token)
  • JPA / Hibernate
  • MySQL
  • Docker

Frontend

  • React
  • Tailwind CSS
  • HTML5
  • JavaScript (ES6+)
  • Vite

🔐 Seguridad

  • Autenticación basada en JWT
  • Protección de endpoints con Spring Security
  • Acceso controlado a las operaciones del sistema

🐳 Docker (Backend)

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

⚙️ Configuración por perfiles

El backend utiliza perfiles de Spring Boot para manejar diferentes entornos:

Perfiles disponibles

  • dev → Desarrollo local
  • pro → Producción
  • default → Configuración estándar

Archivos de configuración

  • application.properties
  • application-dev.properties
  • application-pro.properties

Variables de entorno

Se utiliza un archivo .env para manejar:

  • Credenciales de base de datos
  • Claves JWT
  • Configuración sensible del sistema

⚠️ El archivo .env no debe subirse al repositorio.


🗄️ Base de datos

  • MySQL
  • Modelo relacional orientado a:
    • Videojuegos
    • Clientes
    • Transacciones (ventas y alquileres)

🚀 Instalación y ejecución local

Backend

  1. Clonar el repositorio
  2. Entrar al directorio del backend
  3. Crear el archivo .env con las variables necesarias
  4. Seleccionar el perfil deseado:
    spring.profiles.active=dev
  5. Ejecutar la aplicación:
    mvn spring-boot:run
    

Frontend

  1. Entrar al directorio del frontend
  2. Crear el archivo .env
  3. Definir la variable de entorno con la URL del backend:
    VITE_API_URL=http://localhost:8080
  4. Instalar dependencias:
    npm install
  5. Ejecutar la aplicación:
    npm run dev
    

About

Sistema full-stack de gestión de videojuegos con ventas, alquileres, autenticación JWT y despliegue en la nube.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages