Skip to content

LorenzSchueler/sport-log

Repository files navigation

Sport Log

Sport Log consists of an app written in 🐦 Flutter together with a server backend written in 🦀 Rust. Additionally, there are action providers which can perform scheduled actions like importing or exporting data from other sources or providing automated reservations on other platforms. The client and action providers communicate with the server via a REST API. The client has an own database in order to allow offline use. It synchronizes with the server when connectivity is available.

All Screenshots

🥕 Features

  • 🔓 open source and add free
  • 🛈 open REST API (server) & export of all data as SQLite DB (client)
  • 🔁 auto synchronization & multi device support & offline support
  • 🏋️ track strength metrics (input of sets and reps)
  • 💯 track metcons (enter scores for predefined or user defined workouts)
  • 🏃 GPS tracking for outdoor activities (supports tracking 👣 cadence & 💓 heart rate and 🗣️ voice feedback & 🥁 metronome)
  • 🏞 plan routes in advance and use them when tracking (also supports import/ export as GPX)
  • 📝 add diary entries
  • 📊 statistics about workouts including 🏅 records, 📈 charts, splits and much more
  • 🚴 create new movements
  • 🗺️ map with different styles (⛺ outdoor, 🚗 street, 🛰️ satellite) support for 🌍 3D and ⛰️ hill shading
  • 💾 download offline maps
  • ⏱️ timer with different modes (timer, interval, stopwatch)
  • 🗓️ schedule task to be executed by action providers on server

🏛 Project Structure

The server and action providers as well as helper tools are structured as follows:

The flutter app lives in sport-log-client

📖 Documentation

Refer to server docs, client docs and synchronization docs.

🤝 Contributing

We would be grateful for any Issues and PRs.

For questions please use the discussions.

⚖ License

GPL-3.0 License