This project is a backend service for managing drones, missions, and flight logs. It is designed to facilitate the automation of drone-based surveying/mapping for large campuses or sites. Built using NestJS, the service includes CRUD operations, mission simulations, and robust authentication mechanisms.
-
User Authentication
- Implemented using JWT tokens.
- APIs for user login and authentication.
-
Drone Management
- Create, Read, Update, and Delete (CRUD) operations for drones.
-
Mission Management
- CRUD operations for missions with properties like altitude, speed, name, waypoints (array of geolocations), and timestamps.
-
Mission Execution Simulation
- Simulates the movement of drones along mission waypoints.
- Calculates distances and time intervals between waypoints based on drone speed.
- Logs drone positions, altitudes, and timestamps during the simulation.
-
Flight Logs
- Stores executed mission details including flight logs, drone information, and timestamps.
- Provides a unique flight ID for each mission execution.
-
Mission Start/Stop
- Endpoints to start and stop a mission execution.
- Simulates real-world drone behavior during the mission execution.
-
Flight Log PDF Generation
- Generates and downloads flight logs in PDF format.
-
Dockerization
- Docker support for easy deployment.
-
Data Validation
- Input validation with proper error handling and response structures.
- Framework: NestJS
- Database: MongoDB
- Authentication: JWT
- Language: TypeScript
- Tools: Docker, Postman
- Clone the repository:
git clone <repository-url> cd <project-directory>