API REST para la gestión de drones de entrega de medicamentos. Este proyecto permite gestionar drones, medicamentos y sus relaciones, incluyendo funcionalidades para cargar medicamentos en drones, verificar estado de batería, y más.
- Gestión completa de drones: CRUD para drones con diferentes modelos y estados
- Gestión de medicamentos: CRUD para medicamentos con códigos únicos
- Asignación de medicamentos: Sistema para asignar medicamentos a drones
- Verificación de estado: Seguimiento del estado de los drones (IDLE, LOADING, LOADED, DELIVERING, DELIVERED, RETURNING)
- Validación de batería: Control de nivel de batería (0-100%)
- NestJS - Framework de Node.js
- TypeScript - Lenguaje de programación
- PostgreSQL - Base de datos relacional
- TypeORM - ORM para manejo de base de datos
- Docker - Contenerización
- Adminer - Interfaz de administración de base de datos
- Node.js 16+
- Docker y Docker Compose
- PostgreSQL (proporcionado via Docker)
- Clona el repositorio:
git clone https://github.com/PushoDev/drones-api.git- Instala las dependencias:
cd drones-api
npm install- Configura las variables de entorno:
cp .env.example .env- Inicia los servicios con Docker:
docker-compose up -d- Inicia la aplicación:
npm run start:devGET /drones- Listar todos los dronesPOST /drones- Crear un nuevo droneGET /drones/:id- Obtener un drone específicoPATCH /drones/:id- Actualizar un droneDELETE /drones/:id- Eliminar un drone
GET /medications- Listar todos los medicamentosPOST /medications- Crear un nuevo medicamentoGET /medications/:id- Obtener un medicamento específicoPATCH /medications/:id- Actualizar un medicamentoDELETE /medications/:id- Eliminar un medicamento
POST /drone-medications/:droneId/medications/:medicationId- Asignar un medicamento a un droneGET /drone-medications/:droneId/medications- Obtener los medicamentos de un droneDELETE /drone-medications/:droneId/medications/:medicationId- Remover un medicamento de un drone
Drones (drones) --< Drone_Medications >-- Medications (medications)
Las contribuciones son bienvenidas. Por favor, abre un issue o envía un pull request para proponer cambios.
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.