An offline-first Android app for keeping the promises you make to yourself and others.
Promisr helps you build integrity and consistency by tracking commitments over time. It combines a clean Material 3 interface, visual streak calendars, exact reminder notifications, and contact integration — all backed by local, private storage.
- 📅 Interactive Calendar Dashboard — View, filter, and check off commitments on a day-by-day calendar grid.
- 🔥 Streak Tracking — Automatic current/longest streak calculations with monthly calendars highlighting successful vs. missed days.
- 👥 People Hub — Assign promises to contacts, with custom names, relationship labels, theme colors, and profile photos stored securely on-device.
- ⏰ Exact Reminders —
AlarmManager-powered notifications with quick actions to mark complete or snooze 15 minutes. - 🎨 Material You Theming — Light/dark modes with dynamic wallpaper-based color accents on Android 12+.
- 🔒 Offline-First & Private — All data stays on your device via local SQLite storage.
| Dashboard | Streak | People | Person Detail | Settings |
|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
| Category | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose + Material 3 |
| Navigation | Type-safe Compose Navigation with Kotlinx Serialization |
| Database | Room (SQLite) |
| DI | Dagger Hilt |
| Async | Kotlin Coroutines & Flows |
| Images | Coil |
| Calendar | ComposeCalendar |
Promisr follows Clean Architecture, separating framework code from core business logic:
┌───────────────────────────────────────────┐
│ PRESENTATION LAYER │
│ Compose Screens · ViewModels · Navigation │
└───────────────┬─────────────▲──────────────┘
│ observes │ triggers
▼ │
┌───────────────────────────────────────────┐
│ DOMAIN LAYER │
│ Use Cases · Repository Interfaces · Models│
└───────────────┬─────────────────────────────┘
│ implements
▼
┌───────────────────────────────────────────┐
│ DATA LAYER │
│ Room DB · DAOs · Prefs · Repository Impls │
└───────────────────────────────────────────┘
- Domain (pure Kotlin) —
PromiseDomainModel,PersonDomainModel, status enums, repository interfaces, and use cases. - Data — Room database, migrations, and repository implementations (
PromiseRepositoryImpl,PeopleRepositoryImpl). - Presentation — Feature-based Compose screens, ViewModel state, type-safe routing, and date utilities.
Prerequisites
- Android Studio Ladybug or newer
- JDK 11+
- Android SDK 37 (compile/target)
- Minimum SDK: API 24 (Android 7.0)
Setup
git clone https://github.com/aviirajsharma/Promisr.git
cd Promisr
./gradlew installDebugThen open the project in Android Studio, sync Gradle, and run on an emulator or physical device.
This project is open-source.





