This project includes a GPS route tracking system using React Native, EMQX (MQTT broker), MongoDB, and FastAPI.
A Diagram of the project I guess | Geofencing Algorithm stuff |
---|---|
The system architecture involves:
- React Native Application: Sends current location data through MQTT every second.
- EMQX (MQTT Broker): Handles real-time MQTT messages.
- MongoDB: Stores route location data.
- Data Ingestion Microservice: Subscribes to the MQTT topic and stores the received data in MongoDB.
- FastAPI Microservice: Provides an API to access stored route data.
- EMQX Broker: An open-source MQTT broker, handling the messaging queue.
- MongoDB: A NoSQL database used for efficient storage and retrieval of location data.
- React Native Application: A mobile application to send location data.
- Data Ingestion Service: A backend service to process and store incoming MQTT messages in MongoDB.
- FastAPI Service: A Python-based API service to fetch and serve stored route data.
- Docker and Docker Compose
- Node.js and npm (for React Native app)
- Python (for FastAPI service)
-
Start EMQX and MongoDB: Use
docker-compose up
to start the EMQX broker and MongoDB. -
Configure React Native Application:
- Update the MQTT server details in the application configuration.
- Run the app on a physical device or emulator.
-
Start Data Ingestion Microservice:
- Ensure it's configured to connect to both MongoDB and the MQTT broker.
- Run the service to start listening for MQTT messages.
-
Start FastAPI Service:
- Configure MongoDB connection details.
- Run the FastAPI server.
- EMQX Dashboard: http://localhost:18083
- FastAPI Swagger UI: http://localhost:8000/docs
(Include a system architecture diagram if available)
(Include API endpoints and usage details)
I dunno :)