Skip to content

rcellas/jujutsu-kaisen-api-nestjs

Repository files navigation

🎯 API de Jujutsu Kaisen - NestJS

Nest Logo

API RESTful desarrollada con NestJS que proporciona información sobre personajes, localizaciones y técnicas del anime y manga Jujutsu Kaisen.

📋 Descripción del Proyecto

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.

🔧 Requisitos Previos

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

📦 Instalación

  1. Clona el repositorio:
git clone https://github.com/rcellas/jujutsu-kaisen-api-nestjs.git
cd jujutsu-kaisen-api-nestjs
  1. Instala las dependencias:
npm install
  1. 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 .env

Edita el archivo .env con tus configuraciones:

MONGO_URI=mongodb://localhost:27017/jujutsu-kaisen-db

Si usas MongoDB Atlas, tu URI tendrá un formato similar a:

MONGO_URI=mongodb+srv://<usuario>:<contraseña>@cluster.mongodb.net/jujutsu-kaisen-db

🚀 Ejecutar la Aplicación

Modo Desarrollo

Para ejecutar la aplicación en modo desarrollo con recarga automática:

npm run start:dev

La API estará disponible en: http://localhost:3000

Modo Producción

Para compilar y ejecutar en modo producción:

# Compilar el proyecto
npm run build

# Ejecutar en producción
npm run start:prod

Modo Debug

Para ejecutar en modo debug (útil para depuración):

npm run start:debug

📖 Documentación de la API

Una 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.

🌐 Endpoints Principales

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.

Personajes

  • GET /character - Obtiene la lista completa de personajes
  • GET /character/:id - Obtiene los detalles de un personaje específico por su ID

Localizaciones

  • GET /location - Obtiene todas las localizaciones del universo de Jujutsu Kaisen
  • GET /location/:id - Obtiene los detalles de una localización específica por su ID

Técnicas

  • GET /technique - Obtiene todas las técnicas de hechicería maldita
  • GET /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/documentation para ver ejemplos de respuestas, probar los endpoints directamente y conocer todos los parámetros disponibles.

🧪 Testing

El proyecto incluye diferentes tipos de tests:

Tests Unitarios

npm run test

Tests en Modo Watch

Ejecuta los tests en modo watch (se re-ejecutan automáticamente al hacer cambios):

npm run test:watch

Tests con Cobertura

Para generar un reporte de cobertura de código:

npm run test:cov

El reporte se generará en el directorio /coverage.

Tests End-to-End (E2E)

npm run test:e2e

🎨 Linting y Formato de Código

Linting

Para verificar y corregir problemas de estilo de código:

npm run lint

Formato de Código

Para formatear el código con Prettier:

npm run format

📌 Versionado

Este 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.

🤝 Contribuir al Proyecto

¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, sigue estos pasos:

1. Fork del Repositorio

Haz un fork del proyecto haciendo clic en el botón "Fork" en la parte superior derecha de la página del repositorio.

2. Clona tu Fork

git clone https://github.com/TU_USUARIO/jujutsu-kaisen-api-nestjs.git
cd jujutsu-kaisen-api-nestjs

3. Crea una Rama para tu Feature

git checkout -b feature/nombre-de-tu-feature

O para correcciones de bugs:

git checkout -b fix/descripcion-del-bug

4. Realiza tus Cambios

  • Asegúrate de seguir las convenciones de código del proyecto
  • Añade tests para nuevas funcionalidades
  • Actualiza la documentación si es necesario

5. Ejecuta los Tests

Antes de hacer commit, asegúrate de que todos los tests pasen:

npm run test
npm run lint

6. Commit de tus Cambios

Utiliza 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 funcionalidad
  • fix: Corrección de bugs
  • docs: Cambios en documentación
  • style: Cambios de formato (sin afectar el código)
  • refactor: Refactorización de código
  • test: Añadir o modificar tests
  • chore: Tareas de mantenimiento

7. Push a tu Fork

git push origin feature/nombre-de-tu-feature

8. Crea un Pull Request

Ve 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?

Reportar Issues

Si encuentras un bug o tienes una sugerencia:

  1. Ve a la pestaña Issues
  2. Haz clic en "New Issue"
  3. 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

Código de Conducta

  • 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

🛠️ Tecnologías Utilizadas

📂 Estructura del Proyecto

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

📄 Licencia

Este proyecto no tiene una licencia específica definida. Para uso comercial o redistribución, contacta al autor.

👤 Autor

rcellas

📞 Soporte

Si tienes alguna pregunta o necesitas ayuda:


⭐ Si este proyecto te ha sido útil, considera darle una estrella en GitHub!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors