An offline Android task manager that predicts a task's list, day, and time on-device using lightweight Naive Bayes classifiers — no cloud, no account, no data leaving the phone.
- 🧠 On-device prediction — as you type a task, three Naive Bayes classifiers predict its list, day, and time
- 🔒 100% offline & private — all inference and storage happen locally
- 📋 Custom lists — organize tasks into user-defined categories
- 🔔 Reminders — scheduled via WorkManager, resilient to reboots
- 📈 Learns from usage — classifiers retrain incrementally as you complete tasks
- 🎨 Modern UI — fully built in Jetpack Compose
Taskpal uses three independent Multinomial Naive Bayes classifiers, trained and updated on-device from the user's own task history:
| Classifier | Predicts | Input features |
|---|---|---|
ListClassifier |
Which list a task belongs to | Tokenized task title |
DayClassifier |
Which day the task is for | Tokenized task title + creation time |
TimeClassifier |
Which time of day | Tokenized task title + day of week |
This approach was developed as part of a bachelor's thesis and an academic publication.
Taskpal follows MVVM with a clear separation of layers:
model/ → Room database, DAOs, repositories, ListClassifier, DayClassifier, TimeClassifier
ui/ → Jetpack Compose screens, ViewModels, UI state
notifications/ → WorkManager workers (reminders, incremental retraining)
viewmodel/
- Clone the repo
- Open in Android Studio
- Build and run on Android 7.0+ (API 24)
No API keys or setup required — Taskpal works fully offline out of the box.
