An open API service indexing awesome lists of open source software.

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.

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 |
| ---------------------------------- | ------------------------------------ |
| ![A Diagram of the project](assets/algorithm_2.png) | ![Geofencing Algo](assets/algorithm.png) |

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 :)

![I dunno](https://media.tenor.com/j1n9bjAa1ZAAAAAC/elmo-shrug.gif)