2025-04-24 15:57:53 -04:00
..
2025-04-24 12:44:46 -04:00
2025-04-24 15:57:53 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 15:57:53 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 12:44:46 -04:00
2025-04-24 15:57:53 -04:00

Gym Backend - Node.js Version

This is a Node.js backend for a Gym application that was converted from a Java/Quarkus application. It uses Express.js and Sequelize with PostgreSQL.

Características

  • Gestión de usuarios
  • Gestión de clases de gimnasio
  • Sistema de reservas
  • Subida de archivos (imágenes)

Tecnologías

  • Node.js & Express
  • PostgreSQL con Sequelize
  • Autenticación con bcrypt
  • Multer para subida de archivos

Instalación

# Instalar dependencias
npm install

# Configurar variables de entorno
# Edita el archivo .env con tus credenciales de PostgreSQL

Configuración de la Base de Datos

Puedes usar PostgreSQL local o en Railway. Asegúrate de actualizar las variables de entorno en el archivo .env:

PORT=3000
DB_HOST=localhost
DB_USER=postgres
DB_PASSWORD=postgres
DB_NAME=gymdb
DB_PORT=5432
DB_DIALECT=postgres
NODE_ENV=development

Ejecución de la Aplicación

# Ejecutar en modo desarrollo
npm run dev

# Ejecutar en modo producción
npm start

# Poblar la base de datos con datos de ejemplo
npm run seed

Endpoints de la API

Usuarios

  • GET /api/users - Obtener todos los usuarios
  • GET /api/users/:id - Obtener usuario por ID
  • POST /api/users - Crear nuevo usuario
  • PUT /api/users/:id - Actualizar usuario

Clases de Gimnasio

  • GET /api/classes - Obtener todas las clases
  • GET /api/classes/:id - Obtener clase por ID
  • POST /api/classes - Crear nueva clase
  • PUT /api/classes/:id - Actualizar clase
  • DELETE /api/classes/:id - Eliminar clase

Reservas

  • GET /api/bookings - Obtener todas las reservas
  • GET /api/bookings/user/:userId - Obtener reservas por usuario
  • POST /api/bookings - Crear nueva reserva
  • PUT /api/bookings/:id/cancel - Cancelar reserva

Subida de Archivos

  • POST /api/upload - Subir un archivo

Despliegue en Railway

  1. Crea una cuenta en Railway si aún no tienes una
  2. Crea un nuevo proyecto en Railway
  3. Agrega un servicio de PostgreSQL desde el dashboard
  4. Conecta tu repositorio de GitHub o sube el código directamente
  5. Configura las variables de entorno en Railway:
    PORT=3000
    DB_HOST=${{ PGHOST }}
    DB_USER=${{ PGUSER }}
    DB_PASSWORD=${{ PGPASSWORD }}
    DB_NAME=${{ PGDATABASE }}
    DB_PORT=${{ PGPORT }}
    DB_DIALECT=postgres
    NODE_ENV=production
    
  6. Railway detectará automáticamente que es una aplicación Node.js y ejecutará npm start
  7. Una vez desplegada, ejecuta el comando de inicialización de datos desde la terminal de Railway:
    npm run seed
    

Comparación con la Versión Java/Quarkus

Esta versión Node.js mantiene la misma funcionalidad y estructura de API que la versión original Java/Quarkus, con estas diferencias clave:

  1. Usa Sequelize como ORM en lugar de Hibernate/Panache
  2. Implementa API RESTful con Express en lugar de JAX-RS
  3. Maneja la subida de archivos con Multer en lugar de RESTEasy Multipart
  4. Mantiene compatibilidad con PostgreSQL al igual que la versión original

Licencia

MIT