Pokedex CRUD para pruebas y aprendizaje.
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.
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.
Clona el repositorio:
git clone <URL_DEL_REPOSITORIO>
Backend:
cd mike-pokedex/backend
npm install
.env
en el directorio backend
y define las variables de entorno:
PORT=5050
MONGO_URI=mongodb://localhost:27017/nombreDeTuBD
Frontend:
cd ../frontend
npm install
cd backend
npm start
cd ../frontend
npm run dev
getPokemons
en el backend recibe los parámetros limit
, page
y search
.search
está presente, filtra por nombre en la misma PokeAPI.errorHandler
para problemas de conexión o respuestas no válidas.limit
y page
.createTrainer
valida los datos (nombre
, apellidos
, telefono
, medallas
) y guarda en la base de datos si son válidos. Si no, retorna un error.getTrainers
obtiene y ordena alfabéticamente los entrenadores guardados en la base de datos.updateTrainer
valida el ID y los datos nuevos. Si todo está bien, actualiza el registro en la base de datos.deleteTrainer
valida el ID. Si es correcto, elimina el entrenador de la base de datos.express
: Framework de Node.js para construir el servidor y manejar rutas.mongoose
: Para la conexión y el manejo de la base de datos MongoDB.axios
: Para hacer solicitudes HTTP a la PokeAPI.json2csv
: Para la exportación de datos en formato CSV.cors
: Middleware para habilitar CORS.dotenv
: Para manejar variables de entorno.react
: Framework para construir la interfaz de usuario.axios
: Para realizar solicitudes HTTP al backend.jspdf
: Para generar el archivo PDF de los pokémons.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
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.