API RESTful desarrollada con NestJS que proporciona información sobre personajes, localizaciones y técnicas del anime y manga Jujutsu Kaisen.
Esta API permite acceder a datos estructurados sobre el universo de Jujutsu Kaisen, incluyendo:
- Personajes: Información detallada de los personajes de la serie
- Localizaciones: Lugares importantes en el universo de Jujutsu Kaisen
- Técnicas: Técnicas de hechicería maldita y habilidades especiales
El proyecto está construido con NestJS, un framework progresivo de Node.js para construir aplicaciones del lado del servidor eficientes y escalables, utilizando TypeScript.
Antes de comenzar, asegúrate de tener instalado en tu sistema:
- Node.js (versión 20.x o superior) - Descargar Node.js
- npm (versión 10.x o superior) - Viene incluido con Node.js
- MongoDB (versión 4.4 o superior) - Descargar MongoDB
- Puede ser una instancia local o en la nube (MongoDB Atlas)
Para verificar las versiones instaladas, ejecuta:
node --version
npm --version- Clona el repositorio:
git clone https://github.com/rcellas/jujutsu-kaisen-api-nestjs.git
cd jujutsu-kaisen-api-nestjs- Instala las dependencias:
npm install- Configura las variables de entorno:
Crea un archivo .env en la raíz del proyecto basándote en el archivo .env.example:
cp .env.example .envEdita el archivo .env con tus configuraciones:
MONGO_URI=mongodb://localhost:27017/jujutsu-kaisen-dbSi usas MongoDB Atlas, tu URI tendrá un formato similar a:
MONGO_URI=mongodb+srv://<usuario>:<contraseña>@cluster.mongodb.net/jujutsu-kaisen-dbPara ejecutar la aplicación en modo desarrollo con recarga automática:
npm run start:devLa API estará disponible en: http://localhost:3000
Para compilar y ejecutar en modo producción:
# Compilar el proyecto
npm run build
# Ejecutar en producción
npm run start:prodPara ejecutar en modo debug (útil para depuración):
npm run start:debugUna vez que la aplicación esté en ejecución, puedes acceder a la documentación interactiva de Swagger en:
http://localhost:3000/documentation
Esta interfaz te permite explorar y probar todos los endpoints disponibles de forma interactiva.
A continuación se listan los endpoints principales de la API. Para información detallada sobre parámetros, respuestas, códigos de estado y ejemplos completos, consulta la documentación interactiva de Swagger.
GET /character- Obtiene la lista completa de personajesGET /character/:id- Obtiene los detalles de un personaje específico por su ID
GET /location- Obtiene todas las localizaciones del universo de Jujutsu KaisenGET /location/:id- Obtiene los detalles de una localización específica por su ID
GET /technique- Obtiene todas las técnicas de hechicería malditaGET /technique/:id- Obtiene los detalles de una técnica específica por su ID
💡 Tip: Utiliza la documentación de Swagger en
http://localhost:3000/documentationpara ver ejemplos de respuestas, probar los endpoints directamente y conocer todos los parámetros disponibles.
El proyecto incluye diferentes tipos de tests:
npm run testEjecuta los tests en modo watch (se re-ejecutan automáticamente al hacer cambios):
npm run test:watchPara generar un reporte de cobertura de código:
npm run test:covEl reporte se generará en el directorio /coverage.
npm run test:e2ePara verificar y corregir problemas de estilo de código:
npm run lintPara formatear el código con Prettier:
npm run formatEste proyecto utiliza versionado semántico (SemVer) para el control de versiones.
Versión actual: 0.0.1
El formato del versionado es: MAJOR.MINOR.PATCH
- MAJOR: Cambios incompatibles con versiones anteriores
- MINOR: Nueva funcionalidad compatible con versiones anteriores
- PATCH: Correcciones de bugs compatibles con versiones anteriores
Puedes ver el historial completo de versiones en la sección de Releases.
¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, sigue estos pasos:
Haz un fork del proyecto haciendo clic en el botón "Fork" en la parte superior derecha de la página del repositorio.
git clone https://github.com/TU_USUARIO/jujutsu-kaisen-api-nestjs.git
cd jujutsu-kaisen-api-nestjsgit checkout -b feature/nombre-de-tu-featureO para correcciones de bugs:
git checkout -b fix/descripcion-del-bug- Asegúrate de seguir las convenciones de código del proyecto
- Añade tests para nuevas funcionalidades
- Actualiza la documentación si es necesario
Antes de hacer commit, asegúrate de que todos los tests pasen:
npm run test
npm run lintUtiliza mensajes de commit descriptivos:
git add .
git commit -m "feat: añade endpoint para obtener técnicas por categoría"Convenciones para mensajes de commit:
feat:Nueva funcionalidadfix:Corrección de bugsdocs:Cambios en documentaciónstyle:Cambios de formato (sin afectar el código)refactor:Refactorización de códigotest:Añadir o modificar testschore:Tareas de mantenimiento
git push origin feature/nombre-de-tu-featureVe a la página del repositorio original y haz clic en "New Pull Request". Describe claramente:
- ¿Qué problema resuelve tu PR?
- ¿Qué cambios has realizado?
- ¿Cómo se puede probar?
Si encuentras un bug o tienes una sugerencia:
- Ve a la pestaña Issues
- Haz clic en "New Issue"
- Proporciona una descripción clara:
- Para bugs: Pasos para reproducir, comportamiento esperado vs actual, capturas de pantalla si aplica
- Para features: Descripción de la funcionalidad, casos de uso, beneficios
- Sé respetuoso con otros contribuidores
- Acepta críticas constructivas
- Enfócate en lo que es mejor para la comunidad
- Muestra empatía hacia otros miembros de la comunidad
- NestJS - Framework de Node.js
- TypeScript - Lenguaje de programación
- MongoDB - Base de datos NoSQL
- Mongoose - ODM para MongoDB
- Swagger - Documentación de API
- Jest - Framework de testing
- ESLint - Linter para TypeScript
- Prettier - Formateador de código
jujutsu-kaisen-api-nestjs/
├── src/
│ ├── character/ # Módulo de personajes
│ │ ├── controller/ # Controladores
│ │ ├── dto/ # Data Transfer Objects
│ │ ├── schema/ # Esquemas de MongoDB
│ │ └── service/ # Lógica de negocio
│ ├── location/ # Módulo de localizaciones
│ ├── technique/ # Módulo de técnicas
│ ├── scraper/ # Módulo de web scraping
│ ├── app.module.ts # Módulo principal
│ └── main.ts # Punto de entrada
├── test/ # Tests E2E
├── .env # Variables de entorno (no versionado)
├── .env.example # Ejemplo de variables de entorno
├── package.json # Dependencias del proyecto
└── README.md # Este archivo
Este proyecto no tiene una licencia específica definida. Para uso comercial o redistribución, contacta al autor.
rcellas
- GitHub: @rcellas
- Repositorio: jujutsu-kaisen-api-nestjs
Si tienes alguna pregunta o necesitas ayuda:
- Abre un Issue
- Consulta la documentación de NestJS
⭐ Si este proyecto te ha sido útil, considera darle una estrella en GitHub!