Este es el backend de la aplicación Stellar, desarrollado con NestJS y Prisma ORM. Proporciona una API REST para la búsqueda de habitaciones y la gestión de reservas, además de manejar precios dinámicos basados en varios factores.
📁 stellar-backend
📁 prisma
📁 migrations # Migraciones de Prisma
─ schema.prisma # Definición del esquema de la base de datos
─ seed.ts # Script para inicializar datos
📁 src
📁 helpers # Funciones de ayuda
📁 prisma # Módulo Prisma
📁 reservations # Módulo de reservas
📁 dto # DTOs de reservas
📁 rooms # Módulo de habitaciones
📁 dto # DTOs de habitaciones
📁 rules # Módulo de reglas
📁 dto # DTOs de reglas
📁 roomTypes # Módulo de tipo de habitaciones
📁 dto # DTOs de tipo de habitaciones
─ app.controller.ts # Controlador principal
─ app.module.ts # Módulo raíz
─ main.ts # Punto de entrada
─ .env # Variables de entorno
─ openapi.json # Archivo generado por Swagger con la documentación de la API
─ package.json # Dependencias y scripts de npm
─ tsconfig.json # Configuración de TypeScript- Node.js v18+
- PostgreSQL
-
Clonar el repositorio:
git clone git@github.com:3FE3LE/stellar-backend.git cd stellar-backend -
Instalar las dependencias:
npm install
-
Configurar la base de datos:
- Crear un archivo
.envbasado en.env.exampley configurar la URL de la base de datos:DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"
- Crear un archivo
-
Ejecutar las migraciones para preparar la base de datos:
npx prisma migrate dev
-
Sembrar la base de datos con datos iniciales:
npx ts-node prisma/seed.ts
-
Modo desarrollo:
npm run start:dev
-
Modo producción:
npm run build npm run start:prod
El servidor genera automáticamente un archivo openapi.json con la documentación de la API, que puedes importar en Postman o Swagger UI para explorar los endpoints.
- Iniciar en desarrollo:
npm run start:dev - Construir para producción:
npm run build - Iniciar en producción:
npm run start:prod - Ejecutar pruebas:
npm run test
-
Pruebas unitarias:
npm run test -
Pruebas e2e:
npm run test:e2e
- NestJS - Framework para la construcción de aplicaciones escalables.
- Prisma - ORM para trabajar con PostgreSQL.
- Swagger - Generación automática de la documentación de la API.
- RxJS - Librería para manejar programación reactiva.
- Prisma está configurado para manejar las migraciones de esquema, y la base de datos se puede inicializar con datos utilizando el script
seed.ts. - El archivo
openapi.jsonse genera automáticamente cuando se levanta el servidor.