A Python app that reads and parses GPX files, stores data in a database, and displays statistics for the given data.
- Simple Web UI.
- Plot the GPS data on a map.
- Store original GPX files.
- Calculate Statistics (distance, average speed, etc).
- Store GPS data in a database.
- Supports GPX 1.0 and 1.1 Files.
- Support for multiple users
Clone the project
git clone https://github.com/Spulp45/cisc4900.gitGo to the project directory
cd cisc4900Create Python Virtual Environment
python -m venv .venvActivate Virtual Environment
source .venv/bin/activateInstall Required Libraries
pip install -r requirements.txtRun the app with
python ./main.pyNow you should see this in the terminal:
Note: Port may differ if it’s already in use.
$ Running on http://127.0.0.1:5000That is where the Web UI is located. Open it to interact with the app.
Create Python Virtual Environment
python -m venv .venvActivate Virtual Environment
.venv\Scripts\activate.batInstall Required Libraries
pip install -r requirements.txtRun the app with
python .\main.pyNow you should see this in the terminal:
Note: Port may differ if it’s already in use.
$ Running on http://127.0.0.1:5000That is where the Web UI is located. Open it to interact with the app.
Instructions on how to run are on Run Locally Section
- Open the Web UI.
- You should see the login screen, choose register if you have not created an username and password yet.
- After logging in you should see the Main Menu with a table with uploaded tracks and the upload box. Note: We have provided you with some test files located in the demoGPX folder. You can use these to test the upload and display features of the app.
- Upload a GPX file, click on the Browse... button, and select a GPX file. After making your selection, click the Upload Button.
- Click on the View Stats to display all the data processed from that GPX file.
- Leaflet.js https://leafletjs.com/
- Flask https://flask.palletsprojects.com/
- gpxpy https://github.com/tkrajina/gpxpy
- Chart JS https://www.chartjs.org/
- HTMX https://htmx.org/








