Skip to content
Examples

Personal / fitness tracking

biking2

Self-hosted bike-mileage and GPS-track tracker, Spring Boot on Java 8.

Main goal
Stay simple enough to double as a learning project for Java 8, Spring Boot and AngularJS, while still being a real system one person runs in production.
Business domain
Personal / fitness tracking
Size
Single maintainer · personal project · in production since 2014
Strategic decisions
  • Spring Boot single "fat jar" deployment
  • Constructor injection only
  • AngularJS single-page app bundled in the same artifact
  • MQTT (via ActiveMQ) for near real-time tracking
Technologies
  • Java 8
  • Spring Boot
  • AngularJS
  • MQTT / ActiveMQ
  • Highcharts

biking2 tracks Michael Simons’ bikes and their mileage, converts Garmin TCX tracks to GPX, and visualizes both tracks and ride pictures — built as a running exercise in Spring Boot, Java 8 and AngularJS.

The documentation is written directly in arc42’s AsciiDoc template, in English, with the naming and structure enforced by jQAssistant — worth comparing against the other examples here for how closely a real, single-maintainer project can stick to the template’s letter.

The documentation

  1. 1 Introduction and Goals
  2. 2 Architecture Constraints
  3. 3 Context and Scope
  4. 4 Solution Strategy
  5. 5 Building Block View
  6. 6 Runtime View
  7. 7 Deployment View
  8. 8 Cross-cutting Concepts
  9. 9 Architecture Decisions
  10. 10 Quality Requirements
  11. 11 Risks and Technical Debt
  12. 12 Glossary

Start reading →