-
Para los Conductores de Aplicaciones (Uber, Didi, etc.): Optimizar el tiempo y recursos es un desafío constante. La falta de información en tiempo real sobre eventos importantes en la ciudad les obliga a circular sin un destino concreto, lo que genera pérdidas económicas, aumenta el consumo de combustible y contribuye a la congestión vehicular. Esta ineficiencia impacta negativamente tanto a los conductores como a la ciudad en general.
-
Para los Organizadores de Eventos: Promover eventos y atraer asistentes puede ser complicado sin una conexión directa con los servicios de transporte. La falta de visibilidad de los eventos en plataformas que usan los conductores puede limitar la asistencia, lo que afecta el éxito del evento y las experiencias de los asistentes.
-
Optimización para Conductores: EventMap ofrece una plataforma que proporciona información en tiempo real sobre eventos próximos, permitiendo a los conductores optimizar sus rutas, ahorrar combustible y maximizar sus ganancias al dirigirse a áreas con mayor demanda de transporte.
-
Mayor Visibilidad para Organizadores: Los eventos se promueven directamente a los conductores de aplicaciones, lo que facilita una mayor asistencia y mejora la experiencia de los asistentes. Los organizadores pueden asegurarse de que sus eventos sean visibles para quienes prestan servicios de transporte, maximizando la afluencia.
-
Beneficios Medioambientales: Al reducir los tiempos de conducción innecesarios, EventMap contribuye a disminuir la congestión vehicular y las emisiones de carbono, mejorando la sostenibilidad en las ciudades.
-
Descarga e instala PostgreSQL en tu máquina local desde el siguiente enlace:
PostgreSQL Download -
Descarga e instala Node en tu máquina local desde el siguiente enlace:
NodeJS Download --version 20.3.1
$ npm install
# Instalar globalmente
$ npm install -g @nestjs/cli
# Dentro de carpeta del proyecto
$ npm install prisma --save-dev
$ npm install @prisma/client
Crea un archivo .env en la raíz del proyecto para almacenar las credenciales de la base de datos. La configuración debe incluir lo siguiente:
# Varibales Postgres
1. DATABASE_URL
2. PORT
Example:
DATABASE_URL="postgresql://<USERNAME>:<PASSWORD>@<HOST>:<PORT>/<DATABASE_NAME>?schema=<SCHEMA>"
# Radio para búsqueda de eventos
1. RADIUS
# Correo electrónico del administrador principal
1. ADMIN_EMAIL=
2. ADMIN_PASSWORD=
## Variables para Nodemailer
1. EMAIL_USER
2. EMAIL_PASSWORD
# URL del frontend
1. FRONTEND_URL=
## Variables de Cloudinary
1. CLOUDINARY_UR
2. CLOUDINARY_API_KEY
3. CLOUDINARY_API_KEY_SECRET
4. CLOUDINARY_API_KEY_NAME
# Migrar DB
$ npx prisma migrate dev
# Sincronizar DB
$ npx prisma db push
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
i003-eventmap-back/
├── .github/ # Configuración y flujos de trabajo de GitHub
├── .vscode/ # Configuraciones específicas de Visual Studio Code
├── dist/ # Archivos compilados y preparados para producción
├── node_modules/ # Dependencias instaladas de Node.js
├── prisma/ # Archivos de configuración y migraciones de Prisma
├── src/ # Código fuente de la aplicación
│ ├── config/ # Configuraciones de la aplicación
│ ├── decorators/ # Decoradores personalizados de NestJS
│ ├── guards/ # Guardias personalizados para autorización
│ ├── helpers/ # Funciones de ayuda reutilizables
│ ├── interceptors/ # Interceptores personalizados de NestJS
│ ├── metrics/ # Código relacionado con el monitoreo y métricas
│ ├── middlewares/ # Middlewares personalizados para la aplicación
│ ├── modules/ # Módulos de la aplicación
│ ├── utils/ # Utilidades y funciones auxiliares
│ ├── app.controller.spec.ts # Pruebas unitarias del controlador principal
│ ├── app.controller.ts # Controlador principal de la aplicación
│ ├── app.module.ts # Módulo principal de la aplicación
│ ├── app.service.ts # Servicio principal de la aplicación
│ ├── main.ts # Punto de entrada de la aplicación
│ └── prisma.service.ts # Servicio de conexión y gestión de Prisma
├── test/ # Pruebas del proyecto
├── .env # Variables de entorno para configuración local
├── .envDefault.env # Archivo de ejemplo de variables de entorno
├── .eslintrc.js # Configuración de ESLint para el análisis estático del código
├── .gitignore # Archivos y directorios ignorados por Git
├── .prettierrc # Configuración de Prettier para formateo del código
├── deploy.sh # Script de despliegue para producción
├── docker-compose.yml # Configuración de Docker Compose
├── Dockerfile # Archivo Docker para construir la imagen de la aplicación
├── nest-cli.json # Configuración del CLI de NestJS
├── package-lock.json # Bloqueo de versiones de dependencias instaladas
├── package.json # Archivo de dependencias y scripts del proyecto
├── prometheus.yml # Configuración de monitoreo con Prometheus
├── README.md # Documentación del proyecto
├── tsconfig.build.json # Configuración específica de TypeScript para la construcción
└── tsconfig.json # Configuración principal de TypeScript
Interfaz Interactiva de Swagger
- URL: http://localhost:3000/docs
- Descripción: Esta ruta sirve la interfaz de usuario de Swagger UI, donde puedes ver todos los endpoints documentados, sus métodos, parámetros, y ejemplos de respuesta. Además, puedes realizar peticiones directamente desde esta interfaz para probar los diferentes endpoints de la API. Esta ruta proporciona la especificación completa de la API en formato JSON. Es útil para integraciones automáticas y para generar clientes de API en diferentes lenguajes de programación.
- Despliegue: https://i003-eventmap-back-dev-latest.onrender.com
- Repositorio: https://github.com/igrowker/i003-eventmap-back
- Documentacion: Swagger
- Despliegue a produccion: https://github.com/igrowker/i003-eventmap-back/actions/workflows/ci-deploy-to-prod.yml/badge.svg