Building an Adventure Tracker
Towards the end of summer 2024, my Dad is going to be paddling a canoe down the length of the Mississippi river. We thought it'd be fun to build software that tracks his location and shows his progress on a website so anyone could follow along.
This essay is the plans for the technical details of how to make that happen.
Core Requirements
First, let's start with the core requirements:
- He needs technology on him that can transmit coordinates.
- He shouldn't have to manually transmit coordinates at any point. It should happen in the background.
- The system should be able to handle long periods of no internet connection. It's likely that he'll be out of service or purposefully have cell service turned off. If possible, the system should continue to capture coordinates while offline and then upload them all once back online.
- The location coordinates of where he's been should be plotted visually online so anyone can go to a website and see his most recent location.
Stretch Goals
There are also a few stretch goals that would be fun to add, but aren't critical and should only be considered when the core requirements are done:
Coordinates subset image generator
In order to post on social media, he should be able generate an image of where he's been over the last X
hours/days/weeks.
There should be a simple screen where he can enter a Start Time
and an End Time
and have a downloadable image generated showing a zoomed in version of the map with all the location coordinates
that occured between those two time stamps.
Image Uploads
To enhance the online map, he should be able to upload images that are plotted on the map alongside his location coordinates.
Ideally he'd have a simple interface on his phone where he can take a picture (or choose from the photo library) and upload it to the system.
The picture should then be displayed on the map at the location where the photo was taken.
Like the coordiantes, this should also work in offline mode where items are sync'd whenever he has internet connection.
Next Steps
In the next article I'll outline the pieces of the system needed to build the core requirements!