Skip to content

gabrielmarte-dev/cenar-web-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cenar-web-api

API RESTful para la plataforma de pedidos y delivery AppCenar. Gestiona autenticación, usuarios, comercios, productos, pedidos y repartidores.

Tecnologías

  • Runtime: Node.js >= 20
  • Framework: Express 5
  • Base de datos: MongoDB + Mongoose
  • Autenticación: JWT (jsonwebtoken)
  • Emails: Resend
  • Subida de archivos: Multer
  • Documentación: Swagger UI (/swagger)

Requisitos

  • Node.js >= 20
  • MongoDB corriendo localmente

Instalación

git clone https://github.com/gabrielmarte-dev/cenar-web-api.git
cd cenar-web-api
npm install

Copia el archivo de variables de entorno y ajusta los valores:

cp .env.example .env.development

Uso

# Desarrollo
npm run dev

# Producción
npm start

# Ejecutar seeds manualmente
npm run seed

Variables de entorno

Variable Descripción
NODE_ENV Entorno (development / qa)
PORT Puerto del servidor (default: 3000)
MONGODB_URI_DEV URI de MongoDB para desarrollo
JWT_SECRET Clave secreta para firmar tokens JWT
JWT_EXPIRES_IN Expiración del token (ej. 7d)
RESEND_API_KEY API key de Resend para envío de correos
EMAIL_FROM Dirección de origen de los correos
APP_URL URL base de la aplicación
ACTIVATION_TOKEN_EXPIRY Expiración del token de activación en ms (default: 3600000)
SEED_DB Si es true, carga datos iniciales al arrancar
DEFAULT_ADMIN_* Credenciales del administrador por defecto

Endpoints principales

La documentación completa está disponible en /swagger una vez iniciado el servidor.

Prefijo Descripción
POST /api/auth/* Registro, login, activación de cuenta y recuperación de contraseña
GET/PATCH /api/account/me Perfil del usuario autenticado
GET/POST/PUT/PATCH/DELETE /api/admin/* Panel de administración (usuarios, tipos de comercio, configuraciones)
GET/POST/PUT/DELETE /api/commerce/* Gestión de categorías, productos y pedidos del comercio
GET/POST/PUT/DELETE /api/client/* Exploración de comercios, pedidos, direcciones y favoritos del cliente
GET/PATCH /api/delivery/* Pedidos asignados y marcado de entregas del repartidor

Roles

Rol Acceso
ADMIN Panel de administración completo
COMMERCE Gestión de su propio catálogo y pedidos
CLIENT Exploración, pedidos y favoritos
DELIVERY Pedidos asignados y entregas

Estructura

src/
├── config/        # DB, mailer (Resend), multer, swagger, env
├── controllers/   # Lógica de controladores por rol
├── middlewares/   # Auth JWT, validación, manejo de errores
├── models/        # Modelos Mongoose
├── routes/        # Rutas Express con documentación OpenAPI
├── seed/          # Datos iniciales (roles, tipos, admin, datos de prueba)
├── services/      # Lógica de negocio por módulo
├── utils/         # Helpers: response, pagination, paths, token
└── validators/    # Validaciones con express-validator
uploads/           # Imágenes subidas por usuarios

Colaboradores

Licencia

MIT

About

API RESTful para la plataforma de pedidos y delivery AppCenar.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors