API REST para gestionar el control de plagas en cultivos y monitorear condiciones climáticas, construida con Node.js, Express y base de datos (MongoDB/MySQL). Ideal para practicar endpoints CRUD, validación, lógica de negocio y estructuras limpias.
- 🚀 Características
- ⚙️ Requisitos
- 📦 Instalación & Configuración
- 🚀 Ejecución
- 🔧 Endpoints principales
- 🏛️ Arquitectura & estilo
- 🔧 Mejoras sugeridas
- 🤝 Contribuciones
- ⚖️ Licencia
- CRUD para plagas, cultivos y condiciones climáticas.
- Manejo de datos con Express y acceso a base de datos (MongoDB o MySQL).
- Middleware para validación de entradas, autenticación básica y control de errores.
- Implementación de patrones REST en rutas y lógica — inspirado en guías populares de Node.js/Express ([dev.to][1]).
- Node.js ≥ 14
- npm o yarn
- Una base de datos corriendo (MongoDB o MySQL) y configurada
git clone https://github.com/FrancoDavid/api-rest-admin-crop.git
cd api-rest-admin-crop
npm installLuego, define tus variables en .env:
DB_URI=<tu cadena de conexión>
PORT=3000
AUTH_TOKEN=<token opcional para protección básica>npm start # o npm run dev si usas nodemonLa API estará disponible en http://localhost:3000/api/...
GET /api/pests– Listar plagasPOST /api/pests– Crear nueva plagaPUT /api/pests/:id– Actualizar plagaDELETE /api/pests/:id– Eliminar plagaGET /api/crops– Listar cultivosGET /api/weather– Obtener condiciones climáticas actualesPOST /api/weather– Registrar lecturas climáticas
(Ajusta nombres según tu implementación)
- Rutas bien definidas bajo
/api/...con verbs HTTP apropiados (GET, POST, PUT, DELETE) — prácticas recomendadas de REST ([iris.unito.it][2], [toptal.com][3]). - Controladores: abstraen lógica de rutas y llaman a servicios.
- Servicios: gestionan negocio, lectura y escritura en la base.
- Modelos: esquemas para MongoDB (Mongoose) o Entity/ORM para SQL.
- Middleware: autenticación básica, validación y manejo de errores como responde Postman/Toptal ([toptal.com][3]).
- Autenticación robusta (JWT, OAuth2).
- Documentación OpenAPI/Swagger.
- Logs estructurados con Winston/Morgan.
- Pruebas unitarias (
Mocha,Jest) y de integración (Supertest). - Contenerización con Docker + docker-compose.
- Programación de tareas gaussianas cron para monitoreo climático.
¡Tus ideas son bienvenidas!
- Haz un fork del repositorio
- Crea una rama:
feature/tu-mejora - Agrega tu aporte con commits descriptivos
- Envía un Pull Request explicando tu mejora
Distribuido bajo MIT. Consulta LICENSE para más detalles.