{"id":21916224,"url":"https://github.com/youngermaster/gps-route-tracking-system","last_synced_at":"2025-10-09T14:30:23.975Z","repository":{"id":207968163,"uuid":"720523787","full_name":"Youngermaster/GPS-Route-Tracking-System","owner":"Youngermaster","description":"GPS route tracking system using React Native, EMQX (MQTT broker), MongoDB, and FastAPI.","archived":false,"fork":false,"pushed_at":"2024-01-11T00:16:45.000Z","size":16582,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T03:07:53.776Z","etag":null,"topics":["emqx","gps-tracking","mqtt-broker","react-native"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Youngermaster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-18T18:44:14.000Z","updated_at":"2024-11-08T15:41:31.000Z","dependencies_parsed_at":"2024-01-11T01:45:24.323Z","dependency_job_id":null,"html_url":"https://github.com/Youngermaster/GPS-Route-Tracking-System","commit_stats":null,"previous_names":["youngermaster/gps-route-tracking-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Youngermaster/GPS-Route-Tracking-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FGPS-Route-Tracking-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FGPS-Route-Tracking-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FGPS-Route-Tracking-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FGPS-Route-Tracking-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Youngermaster","download_url":"https://codeload.github.com/Youngermaster/GPS-Route-Tracking-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youngermaster%2FGPS-Route-Tracking-System/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001538,"owners_count":26083119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emqx","gps-tracking","mqtt-broker","react-native"],"created_at":"2024-11-28T19:17:02.518Z","updated_at":"2025-10-09T14:30:20.465Z","avatar_url":"https://github.com/Youngermaster.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GPS Route Tracking System\n\nThis project includes a GPS route tracking system using React Native, EMQX (MQTT broker), MongoDB, and FastAPI.\n\n| A Diagram of the project I guess | Geofencing Algorithm stuff |\n| ---------------------------------- | ------------------------------------ |\n| ![A Diagram of the project](assets/algorithm_2.png) | ![Geofencing Algo](assets/algorithm.png) |\n\nThe system architecture involves:\n\n1. **React Native Application**: Sends current location data through MQTT every second.\n2. **EMQX (MQTT Broker)**: Handles real-time MQTT messages.\n3. **MongoDB**: Stores route location data.\n4. **Data Ingestion Microservice**: Subscribes to the MQTT topic and stores the received data in MongoDB.\n5. **FastAPI Microservice**: Provides an API to access stored route data.\n\n## Components\n\n1. **EMQX Broker**: An open-source MQTT broker, handling the messaging queue.\n2. **MongoDB**: A NoSQL database used for efficient storage and retrieval of location data.\n3. **React Native Application**: A mobile application to send location data.\n4. **Data Ingestion Service**: A backend service to process and store incoming MQTT messages in MongoDB.\n5. **FastAPI Service**: A Python-based API service to fetch and serve stored route data.\n\n## Setup and Installation\n\n### Prerequisites\n\n- Docker and Docker Compose\n- Node.js and npm (for React Native app)\n- Python (for FastAPI service)\n\n### Running the Services\n\n1. **Start EMQX and MongoDB**:\n   Use `docker-compose up` to start the EMQX broker and MongoDB.\n\n2. **Configure React Native Application**:\n   - Update the MQTT server details in the application configuration.\n   - Run the app on a physical device or emulator.\n\n3. **Start Data Ingestion Microservice**:\n   - Ensure it's configured to connect to both MongoDB and the MQTT broker.\n   - Run the service to start listening for MQTT messages.\n\n4. **Start FastAPI Service**:\n   - Configure MongoDB connection details.\n   - Run the FastAPI server.\n\n### Services URLs\n\n- **EMQX Dashboard**: \u003chttp://localhost:18083\u003e\n- **FastAPI Swagger UI**: \u003chttp://localhost:8000/docs\u003e\n\n## Architecture Diagram\n\n(Include a system architecture diagram if available)\n\n## API Documentation\n\n(Include API endpoints and usage details)\n\n## Future Enhancements\n\nI dunno :)\n\n![I dunno](https://media.tenor.com/j1n9bjAa1ZAAAAAC/elmo-shrug.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungermaster%2Fgps-route-tracking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoungermaster%2Fgps-route-tracking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoungermaster%2Fgps-route-tracking-system/lists"}