API RESTful para la plataforma de pedidos y delivery AppCenar. Gestiona autenticación, usuarios, comercios, productos, pedidos y repartidores.
- 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)
- Node.js >= 20
- MongoDB corriendo localmente
git clone https://github.com/gabrielmarte-dev/cenar-web-api.git
cd cenar-web-api
npm installCopia el archivo de variables de entorno y ajusta los valores:
cp .env.example .env.development# Desarrollo
npm run dev
# Producción
npm start
# Ejecutar seeds manualmente
npm run seed| 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 |
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 |
| 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 |
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
- Wilson Gabriel Marte - @gabrielmarte-dev
- Lorelvis Santos - @lorelvis-santos