Skip to content

hannguyen2880/ToDoApp

Repository files navigation

To-Do App

This mobile app is my submission for Preliminary Round of Naver Viet Nam AI Hackathon. This app is built with Jetpack Compose (100% declarative UI), language programming is kotlin.

🚀 Project Setup & Usage

  1. Clone this repository
  2. Open the project in Android Studio
  3. Sync the project with Gradle files
  4. Build and run the app on an Android device or emulator (API level 26+, Java 17)

✍️ APK Download: Link APK - github

Installation Instructions:

  1. Download the APK file from the link above
  2. Enable "Install from unknown sources" in your Android settings
  3. Install the APK on your device (Android 8.0+ required)

🎥 Demo Video

✍️ Link youtube

💻 Project Introduction

a. Overview

  • Time Manager is a comprehensive Android application built with Jetpack Compose that helps users organize their daily schedules and improve productivity. The app combines event scheduling, focus timer functionality, and intelligent notifications in a beautiful, modern interface with a cohesive pink theme design.
  • Users can create, edit, and manage events with detailed categorization, set focus sessions for deep work, and receive timely reminders for upcoming activities.

b. Key Features & Function Manual

1. Event Management:

  • Create, edit, and delete events with details, such as: title, notes, date, time, and category (Work, Personal, Study, Meeting,...), or any custom category.
  • Set reminders for important events to receive notifications in Notification Screen.
  • View events in a clean, organized list format.

2. Focus Timer:

  • Start, pause, and reset a focus timer to help users concentrate on tasks.
  • Pre-defined timer sessions (Quick Focus 15min, Deep Work 45min, Short Break 5min).
  • Create custom timer sessions with personalized durations.

3. Notifications:

  • View all upcoming events with enabled reminders
  • Real-time countdown display showing time until events
  • Empty state handling for no upcoming reminders

4. User Interface:

  • Responsive bottom navigation between screens (Home, Timer, Notifications and Profile)

5. Data Persistence:

  • Local data storage using Room database to save events and user profile.
  • Data persistence across app sessions.

6. Navigation Structure:

  • Home Screen (Event calendar and management)
  • Timer Screen (Focus timer functionality)
  • Notification Screen (Upcoming reminders)
  • Profile Screen (Future user settings)

c. Unique Features (What’s special about this app?)

1. Smart Time Management

  • Integration of both scheduling and focus timer in one app
  • Custom category creation with color selection
  • Flexible timer sessions for different work patterns

2. User Experience Focus

  • Intuitive bottom sheet dialogs for creating/editing events
  • Comprehensive empty states and error handling
  • Responsive design adapting to different screen sizes

d. Technology Stack and Implementation Methods

Frontend:

  • Jetpack Compose (100% declarative UI)
  • Material 3 Design System
  • Navigation Compose for screen transitions
  • Compose Animation for smooth transitions

Architecture & Patterns:

  • MVVM (Model-View-ViewModel) architecture
  • Repository pattern for data management
  • Dependency Injection with Hilt
  • StateFlow for reactive state management

Data & Storage:

  • Room Database for local storage
  • DataStore for user preferences

e. Service Architecture & Database structure (when used)

Architecture Overview:

UI Layer (Compose) ↓ ViewModel Layer ↓ Repository Layer ↓ Data Sources (Room Database, DataStore)

Key Components:

  • EventViewModel: Manages event state and business logic
  • EventRepository: Abstracts data access operations
  • EventDao: Room DAO for database operations.

🧠 Future Improvements

a. If you had more time, what would you expand?

  • Complete Firebase Authentication and Cloud Firestore integration for user accounts and cloud data sync.
  • User authentication with email/password, Google and Facebook sign-in options.
  • Real-time data synchronization across devices.
  • Shared calendars for teams or families.
  • In HomeScreen: Add calendar view (monthly/weekly) for better event visualization.
  • In ProfileScreen: Implement user settings, theme customization, and profile management.

b. If you integrate AI APIs more for your app, what would you do?

  • Smart event scheduling suggestions
  • Automatic category detection
  • Break time recommendations
  • Voice-to-text event creation. For example: "I have a meeting online tonight at 7 PM".
  • Multi-language supports.

About

A comprehensive Android application built with Jetpack Compose that helps users organize their daily schedules and improve productivity.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors