Giter Site home page Giter Site logo

tracked's Introduction

Tracked

Demo

Tracked is a mountain biking android application created with Xamarin Forms. The app allows you to record your mountain biking activity such as route, speed, airtime etc. and review it within the app.

For each ride the app can record the route, speed, jump airtimes and trail times. These factors are used to create a map of the ride and provide a visual way of seeing where they can improve. You can also earn achievements for hitting certain milestones during your ride. The main features are;

Speed Heat Map

This is the main feature of the app. It allows you to view your ride as a colour coded polyline on a map. Currently red is fastest and green is the slowest, the colours are relative to the top speed. A marker highlights the location of the top speed achieved on the ride.

Trails

Trails allow you to time yourself between two points and compare your results.

Jumps & Airtime

Tracked detects jumps using the devices accelerometer. It works by detecting when the device is in "freefall" and taking other factors into account, such as the speed.

TODO

Follow / Friends

Allow users to follow / befriend other users and view / like their activities (and comment?).

Berm Detection (Idea)

Allow users to track their angle through berms using the devices gyroscope.

Ghost (Idea)

Allow users to track their progress against their personal best on a trail in realtime. Green and Red screen (customisable) to show if they are currently ahead or behind their best time. Screen must be kept on, or play a sound when they fall behind / overtake.


I have put in thousands of hours into this project and I'm always on the lookout for keen mountain bikers to help test the app! If you fancy giving it a go drop me an email (details in profile) and I'll add you to the internal testers.

tracked's People

Contributors

dependabot[bot] avatar ormesam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tracked's Issues

Achievements

Add achievements. For example hitting a certain speed to jump distance.

Auto-pause

Auto pausing the ride could be useful and save us from storing unnecessary data. We should be able to use the location updates for this, perhaps if speed is 0 for more than 5 updates in a row?

Segments

Similar to Strava, we could even use the Strava API.

Currently we can get the average speed and the length of time the user has been recording but we don't have anything to record the speed/time between two points. This can be useful if, for example the user starts recording, then takes time to put their phone away securely and get going, pausing between trails, getting the phone out to stop etc.

The segments would have to be entered by the user or selected from a previous ride, it could be as simple as the user selecting the start and end or more complex with points in between.

Badges

Similar to Strava badges, show gold for the fastest, silver for second fastest and bronze for third fastest on segments.

Detect jumps

At the moment we just store all the accelerometer data and don't do anything with it. It should be analysed to detect jumps. Not 100% sure how to do this yet.

Ideally the data should be analysed as it is being collected so we don't have to store it all, however this might affect performance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.