Skip to content

Repository files navigation

NeuroTask Android

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.

Key Features

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

Architecture Overview

  • MainActivity.kt – App entry point and Compose host
  • NeuroTaskApplication.kt – Initializes the Supabase client and notification channel
  • data/auth/ – Authentication logic and auth state management
  • data/db/ – Room database schema and DAO
  • data/repository/ – Local task repository abstraction
  • data/supabase/ – Supabase client provider and remote CRUD operations
  • data/sync/ – Sync manager coordinating Room and Supabase
  • ui/ – Compose UI, screens, components, view models, theming
  • util/ – Network monitoring, date utilities, notification helper

Supabase Backend

This app uses Supabase for authentication and task storage. The backend schema is defined in supabase_schema.sql.

Required table

  • tasks

Important requirements

  • Row-level security (RLS) enabled on tasks
  • Policies that restrict reads/writes to the authenticated user's user_id
  • supabase_realtime publication includes public.tasks

Configuration

Supabase credentials

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"'

OAuth Redirect URI

Register the redirect URI inside the Supabase dashboard:

  • neurotask://auth/callback

This is required for Google sign-in to return to the app.

Build & Run

Requirements

  • Android Studio or compatible Gradle toolchain
  • Android SDK 36
  • Kotlin 1.0+ with Compose support

Build commands

From the repo root:

gradlew assembleDebug

Run the app on an emulator or device with:

gradlew installDebug

Project Structure

  • app/ – Android application module
    • src/main/java/com/neurotask/app/ – Kotlin sources
    • src/main/res/ – Android resources
    • build.gradle – module build configuration
  • supabase_schema.sql – Supabase database schema and RLS policies

Notes

  • The app is designed for offline-first operation: local Room writes are immediate, and Supabase sync is handled asynchronously.
  • SyncManager retries sync when the device reconnects.
  • Authentication state is restored on cold start and deep links are managed via handleDeeplinks().

Tech Stack

  • Kotlin
  • Jetpack Compose
  • AndroidX Navigation
  • Room
  • Supabase (auth, PostgREST, realtime)
  • Ktor
  • DataStore
  • Gson
  • Coil
  • Accompanist system UI

Contributing

Feel free to open issues or submit pull requests to improve UI, sync behavior, analytics, or Supabase integration.

About

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.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages