Skip to content

Repository files navigation

📋 Taskpal – Smart Task Manager

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.

Taskpal App Preview


🛠️ Tech Stack

Android Kotlin Jetpack Compose MVVM Room WorkManager Naive Bayes


✨ Features

  • 🧠 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

🧠 How prediction works

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.


🏗️ Architecture

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/

🚀 Getting Started

  1. Clone the repo
  2. Open in Android Studio
  3. Build and run on Android 7.0+ (API 24)

No API keys or setup required — Taskpal works fully offline out of the box.

About

Offline Android task manager with on-device ML task prediction

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages