- NestJS: Es un framework backend basado en Node.js que utiliza TypeScript de manera nativa y que su diseño modular y estructurado está inspirado en Angular.
- PrismaJS: Es un ORM (Object-Relational Mapping) para Node.js y TypeScript que permite interactuar con la base de datos de manera sencilla y segura.
Para este proyecto se utilizó una base de datos no relacional, específicamente MongoDB. Para poder ejecutar el proyecto es necesario tener instalado MongoDB en el equipo.
De acuerdo a los requerimientos de la prueba técnica, se estructuró una colección llamada orders
, que almacena los datos de las órdenes y sus productos asociados.
La estructura de la colección es la siguiente:
{
"_id": "ObjectId",
"collectionAddress": "String",
"scheduledDate": "Date",
"firstName": "String",
"lastName": "String",
"email": "String",
"phone": "String",
"recipientAddress": "String",
"department": "String",
"municipality": "String",
"referencePoint": "String",
"instructions": "String",
"packages": [
{
"content": "String",
"weightPounds": "String",
"width": "String",
"height": "String",
"length": "String"
}
]
}
Para poder ejecutar el proyecto es necesario crear un archivo .env
en la raíz del proyecto con las siguientes variables de entorno:
MONGODB_URI=mongodb://localhost:27017/database-boxful
Para sincronizar la base de datos con el modelo de datos, es necesario ejecutar el siguiente comando:
npx prisma db push
Este comando sincronizará el esquema de Prisma (schema.prisma) con la base de datos de MongoDB.
- Clonar el repositorio:
git clone <URL_DEL_REPOSITORIO>
- Instalar las dependencias:
npm install
- Ejecutar el proyecto en modo desarrollo:
npm run start:dev
- Abrir el navegador y acceder a la siguiente URL:
http://localhost:3050
Se establecio el puerto 3050 en main.ts
para el servidor de NestJS para evitar conflictos con el puerto del proyecto frontend.