MikeDev206 / mike-pokedex

CRUD Pokedex for testing
MIT License
0 stars 0 forks source link

mike-pokedex

Pokedex CRUD para pruebas y aprendizaje.

Descripción del Proyecto

Este proyecto es una Pokedex que consume la PokeAPI y permite gestionar entrenadores de pokémon. Está hecho con Node.js, Express, MongoDB y React.

Estructura del Proyecto

El proyecto está dividido en dos módulos principales:

Para detalles específicos del flujo de trabajo, puedes revisar el Tablero de GitHub Projects, donde está organizada cada tarea y su estado.

Instalación

Prerrequisitos

Pasos para instalar

  1. Clona el repositorio:

    git clone <URL_DEL_REPOSITORIO>
  2. Backend:

    • Ve al directorio del backend e instala las dependencias:
      cd mike-pokedex/backend
      npm install
    • Crea un archivo .env en el directorio backend y define las variables de entorno:
      PORT=5050
      MONGO_URI=mongodb://localhost:27017/nombreDeTuBD
  3. Frontend:

    • Ve al directorio del frontend e instala las dependencias:
      cd ../frontend
      npm install

Ejecutar el proyecto

Uso de la Aplicación

Módulo Uno: Pokedex

Módulo Dos: CRUD de Entrenadores

Detalles Técnicos de los Módulos

Módulo Uno: Consumo de PokeAPI, Paginación, Filtros y Generación de PDF

Algoritmo:

  1. La función getPokemons en el backend recibe los parámetros limit, page y search.
  2. Construye la URL para hacer la solicitud a la PokeAPI.
    • Si search está presente, filtra por nombre en la misma PokeAPI.
  3. Hace la solicitud a la PokeAPI.
    • Tiene un errorHandler para problemas de conexión o respuestas no válidas.
  4. Si la solicitud fue exitosa:
    • Ordena los pokémons alfabéticamente.
    • Aplica paginación según limit y page.
  5. Devuelve solo los datos solicitados al frontend.

Módulo Dos: CRUD de Entrenadores y Generación de CSV

Algoritmo:

  1. Crear un entrenador:
    • La función createTrainer valida los datos (nombre, apellidos, telefono, medallas) y guarda en la base de datos si son válidos. Si no, retorna un error.
  2. Listar entrenadores:
    • getTrainers obtiene y ordena alfabéticamente los entrenadores guardados en la base de datos.
  3. Actualizar entrenador:
    • La función updateTrainer valida el ID y los datos nuevos. Si todo está bien, actualiza el registro en la base de datos.
  4. Eliminar entrenador:
    • deleteTrainer valida el ID. Si es correcto, elimina el entrenador de la base de datos.
  5. Exportar a CSV:
    • En el frontend, hay un botón que convierte la lista de entrenadores en un archivo CSV descargable.

Dependencias

Backend

Frontend

Estructura de Carpetas

mike-pokedex/
│
├── backend/
│   ├── config/
│   │   └── db.js          # Configuración de la conexión a MongoDB
│   ├── models/
│   │   └── Trainer.js     # Modelo de datos para entrenadores
│   ├── routes/
│   │   ├── trainerRoutes.js # Rutas CRUD para entrenadores
│   │   └── pokemonRoutes.js # Ruta para obtener pokémons desde la PokeAPI
│   ├── server.js          # Archivo principal del backend
│   └── .env.example       # Archivo de ejemplo para las variables de entorno
│
└── frontend/
    ├── src/
    │   ├── components/
    │   │   ├── TrainerList.jsx # Componente para listar y manejar entrenadores
    │   │   └── PokemonList.jsx # Componente para listar y manejar pokémons
    │   └── App.js             # Componente principal
    ├── vite.config.js         # Configuración de Vite
    └── index.html             # Archivo HTML principal

Contribuciones

Este proyecto está abierto a contribuciones. Si encuentras un problema o tienes una mejora en mente, puedes abrir un issue o enviar un pull request.