Skip to content

Latest commit

 

History

128 Commits

Folders and files

Repository files navigation

Ankh-Morpork City Watch Backend

Backend REST para gestionar usuarios, casos, agentes y libros del universo de la City Watch. El proyecto está orientado a practicar backend con Node.js, Express, MongoDB/MongoAtlas y autenticación JWT.

Qué incluye

  • API REST con Express.
  • Base de datos MongoDB/MongoAtlas con Mongoose.
  • Autenticación JWT y permisos por rol.
  • Gestión de usuarios con imagen de perfil.
  • Subida de imágenes a Cloudinary.
  • Relaciones entre User, Case, Agent y Book.
  • Seeds para generar datos iniciales.
  • Documentación técnica y de requisitos separada por temas.

Requisitos

  • Node.js
  • npm
  • MongoDB/MongoAtlas
  • Cuenta Cloudinary

Inicio rápido

  1. Instala dependencias:
npm install
  1. Crea un archivo .env a partir de .env.example:
DB_URL=mongodb+srv://...
PORT=3000
APP_URL=http://localhost:3000

JWT_SECRET=your_secret

CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
  1. Ejecuta el servidor en modo desarrollo:
npm run dev
  1. La API estará disponible en:
http://localhost:3000

Base de la API:

/api/v1

Stack técnico

  • Node.js — entorno de ejecución del backend.
  • Express — servidor HTTP y rutas de la API.
  • MongoDB / MongoAtlas — base de datos principal.
  • Mongoose — modelado y consultas con MongoDB.
  • JWT — autenticación y autorización basada en tokens.
  • bcrypt — hash y comparación segura de contraseñas.
  • Cloudinary — almacenamiento y gestión de imágenes.
  • Multer — manejo de archivos multipart/form-data.
  • Multer Storage Cloudinary — integración de subida de archivos con Cloudinary.
  • Nodemailer — envío de emails para recuperación de contraseña.
  • Insomnia — pruebas manuales de la API.

Dependencias del proyecto

Dependencias de desarrollo

  • nodemon — reinicio automático del servidor durante el desarrollo.

Scripts útiles

npm run dev
npm run seed
  • npm run dev: ejecuta el servidor en desarrollo.
  • npm run seed: crea datos iniciales para las colecciones semilladas. El proyecto incluye seeds para Agent y Case; antes de ejecutarlas debe existir un usuario admin en MongoAtlas.

Seeds

El proyecto incluye seeds para Agent y Case.

Antes de ejecutarlas debe existir un usuario admin en MongoAtlas. El primer administrador se crea registrando un usuario normal y cambiando manualmente su role a "admin".

npm run seed

Documentación del proyecto

Notas de entrega

  • .env debe mantenerse fuera del repositorio.
  • El proyecto debe publicarse en GitHub antes de la entrega.
  • Las credenciales reales de base de datos, JWT y Cloudinary deben compartirse de forma privada cuando sea necesario.

About

🔙 Backend REST basado en la City Watch del mundo de Discworld: gestión de usuarios, casos, agentes y libros, autenticación JWT, roles, cambio y recuperación de contraseña con Nodemailer, imágenes en Cloudinary y frontend básico de apoyo para pruebas.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages