Web app for tracking running activities.
I've used a variety of GPS devices and apps over the years. I wanted to have better control over my data, as they can be rather inconsistent (and let's be honest, you never know when they might simply go away or force a pay wall). This application is really just to serve my own needs and isn't public, but it is useful as a technical demonstration as it covers a range of interesting technologies.
WetzRun is split into a few different components. It has a .NET 4.6.1 console app for processing GPS files, an ASP.NET Core web api, and a Vue-based front end web app. All data access goes through Dapper calls to a local SQL Server instance.
The GPS processor handles a variety of formats, including FIT, GPX, TCX, and CSV data. It has logic specific to the services I've used in the past, as well as for my devices (as software and hardware support tends to vary, even for the same manufacturer). I have it configured to copy files off attached GPS devices and then process them as needed (basically saves me from having to manually backup said files). It supports calculating mileage based on GPS points for any files that don't have it included.
The API is very simple. It has no authentication or security and only includes calls that I need in the front end.
Initially the web app was a simple read-only ASP.NET MVC app using Razor views. I decided to create a new fully functional version, using a new-to-me framework as a learning experience. While you can just use bits and pieces of Vue, that would have defeated the purpose; as such, the web app uses the full Vue stack (Vue Router, Vuex, single file Vue components, webpack, npm, babel). I utilized the official template to get started.