NeuroTask is an Android productivity app built with Kotlin and Jetpack Compose. It combines smart task management, multi-view planning, analytics, and cloud sync using Supabase.
- Google authentication via Supabase
- Offline-first local storage with Room
- Cloud synchronization with Supabase PostgreSQL
- Multiple task views:
- List view
- Kanban board
- Eisenhower matrix
- Completion heatmap
- Task analytics and streak-style summary
- Quick task creation and task editing modal
- Priority, status, and search filtering
- Task reminders via notifications
- Deep link OAuth callback support (
neurotask://auth/callback)
MainActivity.kt– App entry point and Compose hostNeuroTaskApplication.kt– Initializes the Supabase client and notification channeldata/auth/– Authentication logic and auth state managementdata/db/– Room database schema and DAOdata/repository/– Local task repository abstractiondata/supabase/– Supabase client provider and remote CRUD operationsdata/sync/– Sync manager coordinating Room and Supabaseui/– Compose UI, screens, components, view models, themingutil/– Network monitoring, date utilities, notification helper
This app uses Supabase for authentication and task storage. The backend schema is defined in supabase_schema.sql.
tasks
- Row-level security (RLS) enabled on
tasks - Policies that restrict reads/writes to the authenticated user's
user_id supabase_realtimepublication includespublic.tasks
Set your Supabase credentials in app/build.gradle under defaultConfig:
buildConfigField "String", "SUPABASE_URL", 'Your Supabase URL'
buildConfigField "String", "SUPABASE_ANON_KEY", 'Your Supabase Anon Key'
buildConfigField "String", "SUPABASE_REDIRECT", '"neurotask://auth/callback"'Register the redirect URI inside the Supabase dashboard:
neurotask://auth/callback
This is required for Google sign-in to return to the app.
- Android Studio or compatible Gradle toolchain
- Android SDK 36
- Kotlin 1.0+ with Compose support
From the repo root:
gradlew assembleDebugRun the app on an emulator or device with:
gradlew installDebugapp/– Android application modulesrc/main/java/com/neurotask/app/– Kotlin sourcessrc/main/res/– Android resourcesbuild.gradle– module build configuration
supabase_schema.sql– Supabase database schema and RLS policies
- The app is designed for offline-first operation: local Room writes are immediate, and Supabase sync is handled asynchronously.
SyncManagerretries sync when the device reconnects.- Authentication state is restored on cold start and deep links are managed via
handleDeeplinks().
- Kotlin
- Jetpack Compose
- AndroidX Navigation
- Room
- Supabase (auth, PostgREST, realtime)
- Ktor
- DataStore
- Gson
- Coil
- Accompanist system UI
Feel free to open issues or submit pull requests to improve UI, sync behavior, analytics, or Supabase integration.