How tree-shady/personalovertimerecord works
PersonalOvertimeRecord is an Android app for recording overtime and leave, calculating pay, and managing attendance data. The main workflow is launch and optional biometric unlock, then create or review records in the calendar, persist them locally, and view monthly summaries. Separate branches cover data import/export, WebDAV sync, settings, and update checks. The README documents these capabilities and the MVVM/repository structure; source excerpts were not provided, so uncertain activity-to-service wiring is omitted.
Main entry points: MainActivity.kt Calendar screen · SettingsActivity.kt App settings · AttendanceViewModel.kt Attendance state · SyncManager.kt Sync coordination
Components 25
App access
- Launch gate
app/src/main/java/com/example/personalovertimerecord/LauncherActivity.kt - Biometric unlock
app/src/main/java/com/example/personalovertimerecord/BiometricActivity.kt - Calendar screen
app/src/main/java/com/example/personalovertimerecord/MainActivity.kt
Attendance and pay
- Calendar view
app/src/main/java/com/example/personalovertimerecord/view/CalendarView.kt - Record editor
app/src/main/java/com/example/personalovertimerecord/dialog/AddOvertimeDialog.kt - Attendance state
app/src/main/java/com/example/personalovertimerecord/viewmodel/AttendanceViewModel.kt - Attendance models
app/src/main/java/com/example/personalovertimerecord/data/OvertimeModels.kt - Overtime and pay
app/src/main/java/com/example/personalovertimerecord/utils/OvertimeCalculator.kt - Salary calculation
app/src/main/java/com/example/personalovertimerecord/utils/SalaryCalculator.kt - Monthly reports
app/src/main/java/com/example/personalovertimerecord/ReportActivity.kt
Local data
- Attendance repository
app/src/main/java/com/example/personalovertimerecord/repository/RoomAttendanceRepository.kt - Attendance access
app/src/main/java/com/example/personalovertimerecord/data/db/AttendanceDao.kt - Encrypted database
app/src/main/java/com/example/personalovertimerecord/data/db/AppDatabase.kt
Data management
- Data manager
app/src/main/java/com/example/personalovertimerecord/DataManagerActivity.kt - Import and export
app/src/main/java/com/example/personalovertimerecord/utils/DataExporter.kt - CSV tools
app/src/main/java/com/example/personalovertimerecord/utils/CsvExporter.kt - PDF reports
app/src/main/java/com/example/personalovertimerecord/utils/PdfExporter.kt
Settings and services
- App settings
app/src/main/java/com/example/personalovertimerecord/SettingsActivity.kt - Settings storage
app/src/main/java/com/example/personalovertimerecord/data/SettingsManager.kt - Sync coordination
app/src/main/java/com/example/personalovertimerecord/utils/SyncManager.kt - WebDAV client
app/src/main/java/com/example/personalovertimerecord/utils/WebDAVManager.kt - Scheduled sync
app/src/main/java/com/example/personalovertimerecord/utils/AutoSyncWorker.kt - Update checker
app/src/main/java/com/example/personalovertimerecord/utils/UpdateManager.kt
Other components
- User
- WebDAV service
Connections 23
- User → Launch gate: launches
- Launch gate → Biometric unlock: gates with
- Biometric unlock → Calendar screen: unlocks
- User → Calendar screen: uses
- Calendar screen → Calendar view: shows
- Calendar screen → Record editor: edits records
- Calendar screen → Attendance state: presents
- Attendance state → Attendance repository: accesses
- Attendance repository → Attendance access: uses
- Attendance access → Encrypted database: reads and writes
- Attendance state → Attendance models: handles
- User → Monthly reports: views
- User → Data manager: manages data
- Data manager → Import and export: imports and exports
- Import and export → CSV tools: uses
- Monthly reports → PDF reports: exports
- User → App settings: configures
- App settings → Settings storage: stores preferences
- Scheduled sync → Sync coordination: triggers
- Sync coordination → WebDAV client: transfers backup
- WebDAV client → WebDAV service: syncs with
- App settings → Sync coordination: configures sync
- App settings → Update checker: checks updates