How nenneas/atwd works
Downhill is a private, local-first Android fitness journal with separate therapy and training records. The user enters through the app shell, passes consent and optional PIN gates, then navigates to logging, overview, training, history, and options; records can be reviewed, reported, shared, or backed up. The graph includes documented features whose implementation files were not sampled, but omits uncertain wiring for those features. SQLCipher is documented as deferred, not active.
Main entry points: MainActivity.kt App entry · AtwdRepository.kt Repository · TrainingStats.kt Journal calculations · AtwdNavHost.kt Navigation
Components 22
App shell
- App entry
app/src/main/java/at/nenneas/atwd/MainActivity.kt - Navigation
app/src/main/java/at/nenneas/atwd/ui/navigation/AtwdNavHost.kt - Route definitions
app/src/main/java/at/nenneas/atwd/ui/navigation/Routes.kt
Journal workflows
- Therapy logging
app/src/main/java/at/nenneas/atwd/ui/screens/entry/EntryScreen.kt - Overview
app/src/main/java/at/nenneas/atwd/ui/screens/home/HomeScreen.kt - Training log
app/src/main/java/at/nenneas/atwd/ui/screens/training/TrainingScreen.kt - History and charts
app/src/main/java/at/nenneas/atwd/ui/screens/history/HistoryScreen.kt - Settings and backup
app/src/main/java/at/nenneas/atwd/ui/screens/options/OptionsScreens.kt - Journal calculations
app/src/main/java/at/nenneas/atwd/domain/TrainingStats.kt
Local data
- Repository
app/src/main/java/at/nenneas/atwd/data/repository/AtwdRepository.kt - Room database
app/src/main/java/at/nenneas/atwd/data/AtwdDatabase.kt - Therapy records
app/src/main/java/at/nenneas/atwd/data/entity/LogEntryEntity.kt - Training sessions
app/src/main/java/at/nenneas/atwd/data/entity/TrainingSessionEntity.kt - Session queries
app/src/main/java/at/nenneas/atwd/data/dao/TrainingSessionDao.kt
Reports and reminders
- Doctor and share reports
app/src/main/java/at/nenneas/atwd/report/DoctorReport.kt - Share images
app/src/main/java/at/nenneas/atwd/report/SharePng.kt - JSON and CSV backup
app/src/main/java/at/nenneas/atwd/backup/JsonBackup.kt - Reminders
app/src/main/java/at/nenneas/atwd/notify/AtwdNotifications.kt - Home widget
app/src/main/java/at/nenneas/atwd/widget/AtwdGlanceWidget.kt
Privacy and access
- PIN session
app/src/main/java/at/nenneas/atwd/security/PinSession.kt - Consent gate
app/src/main/java/at/nenneas/atwd/ui/screens/consent/ConsentScreen.kt
Other components
- User
Connections 23
- User → App entry: opens
- App entry → Repository: observes preferences
- App entry → PIN session: checks unlock
- App entry → Navigation: opens app shell
- App entry → Consent gate: requires consent
- Navigation → Route definitions: resolves destinations
- Repository → Room database: reads and writes
- Room database → Session queries: provides queries
- Session queries → Training sessions: reads and writes
- Repository → Therapy records: manages records
- Repository → Training sessions: manages records
- User → Therapy logging: records therapy
- User → Training log: records workouts
- User → History and charts: reviews history
- User → Settings and backup: manages settings
- Overview → Journal calculations: presents overview metrics
- Training log → Journal calculations: presents training statistics
- History and charts → Journal calculations: presents history analysis
- User → Doctor and share reports: requests doctor report
- User → Share images: shares journal image
- User → JSON and CSV backup: exports or imports
- User → Reminders: receives reminders
- User → Home widget: views home widget