Lightweight, offline-first task manager built with Kotlin, SQLite, and Material Design. Create, edit, complete, and delete tasks with optional description and due date. Works fully offline.
## ✨ Features
- Add tasks with **title**, optional **description**, and **due date**
- Mark tasks as **completed** or **pending**
- Edit and delete tasks anytime
- Stores all data **locally** with SQLite (no internet required)
- **Dark Mode** support
- Clean **Material Design** UI
- Task list with **RecyclerView**
---
## 🧰 Tech Stack
- **Language:** Kotlin
- **UI:** XML layouts, Material Components
- **Database:** SQLite with `SQLiteOpenHelper`
- **IDE:** Android Studio
- **Components:** RecyclerView, Adapter pattern
---
## 📁 Project Structureapp/ ├─ java/ │ └─ com.example.taskmanager/ │ ├─ MainActivity.kt │ ├─ TaskAdapter.kt │ ├─ TaskModel.kt │ └─ TaskDatabaseHelper.kt └─ res/ ├─ layout/ │ ├─ activity_main.xml │ └─ item_task.xml ├─ values/ │ ├─ colors.xml │ ├─ styles.xml │ └─ strings.xml └─ mipmap-*/ app icons
tasks table:
| column | type | notes |
|---|---|---|
| id | INTEGER PRIMARY KEY AUTOINCREMENT | |
| title | TEXT NOT NULL | |
| description | TEXT | optional |
| due_date | TEXT | ISO-8601 string |
| is_completed | INTEGER | 0 = false, 1 = true |
| created_at | TEXT | ISO-8601 |
- Open the project in Android Studio.
- Sync Gradle and build.
- Run on an emulator or a physical device (API 24+ recommended).
TaskDatabaseHelper— creates/updates the SQLite DB and exposes CRUD methods.TaskModel— data model for a task.TaskAdapter—RecyclerView.Adapterfor rendering task items.MainActivity— list screen + add/edit logic.
Add your images here (place files in
/artand link below).
- Search and filters
- Notifications for due dates
- Export/Import to JSON
- Jetpack Compose version
This project is licensed under the MIT License — see LICENSE for details.
Pull requests are welcome. For major changes, open an issue first to discuss what you’d like to change.


