TaskApp is a modern Android application built with Jetpack Compose that helps you create, organize, and track tasks with priorities, statistics, and insights. It supports email/password, Google, and anonymous sign-in, and includes a clean, themeable UI with light/dark mode.
- Task list with creation, editing, selection, and bulk actions
- Priority management and breakdown (Low/Medium/High)
- Statistics overview with completion and productivity indicators
- Recent activity and smart insights
- Sign in/up (email & Google) and guest mode
- Settings: dark mode, UI preferences, font scale, and more
- Profile and notifications screens
This project follows a modular Clean Architecture:
app— Android application module; wires dependencies and composes modulescore— Shared utilities and platform integrations (analytics, billing, etc.)domain— Business logic, models, and use casesdata— Room, Firebase, networking, repositories, and data sourcesui— Jetpack Compose UI, navigation, view models
Module wiring (see settings.gradle.kts):
appdepends oncore,domain,data, anduiuidepends ondomain,core, anddatadatadepends ondomainandcoredomaindepends oncore
- Jetpack Compose (Material 3, Navigation)
- Hilt (DI) with KSP
- Room (local persistence)
- Firebase (Auth, Firestore, Analytics, Crashlytics)
- WorkManager (background tasks)
- Coroutines
Navigation is defined in ui/src/main/java/com/example/ui/AppRoot.kt using NavHost:
- Routes:
signin,home,stats,profile,notifications,settings,edit,edit/{id} - Start destination:
signinwhen not authenticated, otherwisehome
Key screens:
HomeScreen— Task list, bulk actions, top-bar menu (settings, notifications, logout)StatsScreen— Overview cards, weekly progress, priority chips, recent activity, insightsSignInScreen— Email/Password, Google sign-in, anonymous sign-inSettingsScreen— Dark mode and UI preferences viaLocalDarkModeControllerandLocalUiSettingsControllerProfileScreen— Account details and sign out viaProfileViewModel
- Android Studio latest (Koala or newer recommended)
- JDK
11 - Android SDK API 24+
- Clone the repository:
git clone <repository-url> cd TaskApp
- Open the project in Android Studio and sync Gradle
- Configure Firebase (optional but recommended):
- Place your
google-services.jsonintoapp/ - Ensure Google services plugins are enabled in
app/build.gradle.kts
- Place your
- Configure Google Sign-In server client ID (optional):
- Add
GOOGLE_SERVER_CLIENT_IDtolocal.propertiesor your environment; it is read inui/build.gradle.kts
- Add
- Build and run:
./gradlew :app:assembleDebug ./gradlew :app:installDebug
# Clean build
./gradlew clean
# Build app
./gradlew :app:assembleDebug
./gradlew :app:assembleRelease
# Install on device/emulator
./gradlew :app:installDebug
# Build UI module (library)
./gradlew :ui:assembleDebug
# Run tests
./gradlew test
# Lint
./gradlew lint- The project uses KSP for Hilt and Room to improve build speed.
- Some Compose icon APIs may be deprecated; warnings are expected and non-blocking.
TaskApp/
├── app/ # Android app module (entry point)
├── core/ # Core utilities and integrations
├── domain/ # Entities, use cases, business logic
├── data/ # Repositories, Room, Firebase, networking
├── ui/ # Compose UI and navigation
├── screenshots/ # App screenshots
└── scripts/ # Firebase test utilities and seed scripts
This project is provided as-is for demonstration. Add your license notice here if needed.









