a Tracking system using the NEO-7M GPS module. This system is designed to collect geolocation coordinates, process them and present them in a way that suits the needs of customers. We aim to offer a complete solution that will enable efficient and accurate management of location data, thus providing an optimal experience for users.The app will provide valuable information to users such as latitude, longitude and immediate alerts in case of extreme conditions. To ensure data consistency and accessibility, we will deploy Docker containers to run the web application and HiveMQ to manage real-time data streams. The data will be saved to the MongoDB database for future analysis.

Project Map

Our Tracking system uses the NEO-7M GPS module to retrieve real-time GPS data, which is then transmitted to an MQTT (HiveMQ ) server. The web application retrieves data from the server and visualizes it on a geographical map. Simultaneously, the data stream is kept in a MongoDB database for future use. This project provides a comprehensive and efficient solution for real-time tracking and management of location data.

Note: The ESP32 board starts sending data if it is well configured (from the configuration interface)

Practically, we didn't work with the gprs module (just Wi-Fi). So, you can implement the code on TTGO or ESP32 board. It is the same

Manual Setup

ESP32 board setup

Perform the following steps:

1- Download and install Arduino.

2- Install ESP32 Filesystem Uploader in Arduino IDE.

3- Edit the source Code (update the broker and the firebase settings).

4- Install the libraries used in the arduino code.

5- Upload the configuration interface in spiffs on esp32 board (Go to Tools >ESP32 Data Sketch Upload and wait for the files to be uploaded).

6- Upload the source Code.

You will need to create an account in firebase and HiveMQ to be able to modify the arduino code

7- Connect to the "Gps-Tracker" access point.

8- Configure the gps tracker from the configuration interface (

If the tracker is well configured you will be redirected to this interface

9- Make the wiring between the board and the gprs module as shown here

Web application setup

Make sure Docker is installed.

You need to update the broker and the firebase settings in backend >server.js and frontend>src>firebase.js

Spin up the containers

docker-compose up -d --build

Running the command will expose 3 services with the following ports:

  • Backend - :3000
  • Frontend - :8080
  • Mongodb - :27017

You can now access the server at http://localhost:8080/.

App preview

Want more details?

For more details or if you want to recommend me for other projects. Just contact me on my email: [email protected]