metatroncubeswdev bbd83c5a10 Store screenshots for Google Play and the App Store
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 15:27:07 -04:00

Nanga Kathai (NK)

Our song: a music app for the Badaga people of the Nilgiris. Flutter app for iOS and Android.

Run

flutter pub get
flutter run                     # bundled demo catalog (3 demo tones), no backend needed

With Supabase, put the keys in env.json (git-ignored):

{
  "SUPABASE_URL": "https://<project>.supabase.co",
  "SUPABASE_PUBLISHABLE_KEY": "<publishable key>",
  "MEDIA_BASE_URL": "https://<r2 public domain>"
}
flutter run --dart-define-from-file=env.json

Layout

Path What
lib/app/ Theme (colours from the emblem), routes, onboarding flag
lib/audio/ NkAudioHandler (just_audio + audio_service: background play, lock screen, queue, shuffle, repeat) and its providers
lib/data/ Catalog repository (demo JSON or Supabase), liked songs and recently played
lib/core/ Models, occasions, spelling-tolerant search
lib/features/ Screens: welcome, sign-in, home, explore, occasion, search, now playing, singer, library, downloads
lib/shared/widgets/ Artwork and photo fade, singer avatar, track row, mini player, tab shell
assets/ Emblem, Nilgiris photos, demo catalog and demo tones
supabase/migrations/ Database schema and access rules

Supabase setup

  1. Create a project and run supabase/migrations/20261027000000_init.sql (SQL editor, or supabase db push).
  2. Auth → Email: turn on email sign-in. In the "Magic Link" email template, include {{ .Token }} so people receive the 6-digit code.
  3. Make yourself admin: update profiles set role = 'admin' where id = '<your user id>';

Photo credits

Landscape photos from Unsplash (Unsplash License): Vaisakh Satheesan (tea estate), Ravi Raj (Ooty village), Harshal More (Ooty valley).

Description
No description provided
Readme 20 MiB
Languages
Dart 73.9%
HTML 7%
PLpgSQL 5.4%
Python 4.7%
Shell 4%
Other 5%