Este proyecto implementa un servicio backend utilizando Express, Apollo Server (GraphQL) y MongoDB para gestionar usuarios y voluntariados, replicando la lógica del Producto 2.
-
Clonar el repositorio
git clone <tu-repo-url> cd producto-3
-
Instalar dependencias de Node.js
npm install
-
Configurar Variables de Entorno Crea un archivo llamado
.enven la raíz del proyecto y añade la cadena de conexión a la base de datos:MONGO_URI=mongodb://admin:pass@localhost:27017/producto3?authSource=admin
-
Iniciar la base de datos (Docker) Levanta el contenedor de MongoDB utilizando Docker Compose.
docker-compose up -d
-
Carga de Datos (Seed) Ejecuta el script de "semilla" para limpiar la base de datos y cargar los datos iniciales. Nota: Este script encripta automáticamente las contraseñas y resetea las colecciones.
npm run seed
-
Iniciar el servidor de desarrollo El servidor se iniciará en
https://localhost:3000.npm run dev
-
Levantar el contenedor en segundo plano:
docker-compose up -d
-
Detener y eliminar el contenedor Y el volumen de datos: (Útil si quieres eliminar la persistencia de la base de datos completamente)
docker-compose down -v
Pasos para conectarse al shell de MongoDB dentro del contenedor de Docker y verificar que los datos se han cargado correctamente tras ejecutar el seed.
-
Abrir un shell
bashdentro del contenedor:docker exec -it mongo-producto3 bash -
Conectarse al shell de Mongo con credenciales:
mongosh -u admin -p pass
-
Una vez dentro, ejecutar los siguientes comandos:
# Cambiar a la base de datos correcta use producto3 # Mostrar las colecciones (deberías ver 'users' y 'voluntariados') show collections # Mostrar todos los usuarios en formato legible db.users.find().pretty() # Mostrar todos los voluntariados en formato legible db.voluntariados.find().pretty()