https://github.com/youngermaster/gps-route-tracking-system
GPS route tracking system using React Native, EMQX (MQTT broker), MongoDB, and FastAPI.
https://github.com/youngermaster/gps-route-tracking-system
emqx gps-tracking mqtt-broker react-native
Last synced: 9 months ago
JSON representation
GPS route tracking system using React Native, EMQX (MQTT broker), MongoDB, and FastAPI.
- Host: GitHub
- URL: https://github.com/youngermaster/gps-route-tracking-system
- Owner: Youngermaster
- License: apache-2.0
- Created: 2023-11-18T18:44:14.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-11T00:16:45.000Z (over 2 years ago)
- Last Synced: 2025-04-03T03:07:53.776Z (about 1 year ago)
- Topics: emqx, gps-tracking, mqtt-broker, react-native
- Language: Python
- Homepage:
- Size: 15.8 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GPS Route Tracking System
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:
1. **React Native Application**: Sends current location data through MQTT every second.
2. **EMQX (MQTT Broker)**: Handles real-time MQTT messages.
3. **MongoDB**: Stores route location data.
4. **Data Ingestion Microservice**: Subscribes to the MQTT topic and stores the received data in MongoDB.
5. **FastAPI Microservice**: Provides an API to access stored route data.
## Components
1. **EMQX Broker**: An open-source MQTT broker, handling the messaging queue.
2. **MongoDB**: A NoSQL database used for efficient storage and retrieval of location data.
3. **React Native Application**: A mobile application to send location data.
4. **Data Ingestion Service**: A backend service to process and store incoming MQTT messages in MongoDB.
5. **FastAPI Service**: A Python-based API service to fetch and serve stored route data.
## Setup and Installation
### Prerequisites
- Docker and Docker Compose
- Node.js and npm (for React Native app)
- Python (for FastAPI service)
### Running the Services
1. **Start EMQX and MongoDB**:
Use `docker-compose up` to start the EMQX broker and MongoDB.
2. **Configure React Native Application**:
- Update the MQTT server details in the application configuration.
- Run the app on a physical device or emulator.
3. **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.
4. **Start FastAPI Service**:
- Configure MongoDB connection details.
- Run the FastAPI server.
### Services URLs
- **EMQX Dashboard**:
- **FastAPI Swagger UI**:
## Architecture Diagram
(Include a system architecture diagram if available)
## API Documentation
(Include API endpoints and usage details)
## Future Enhancements
I dunno :)
