Logo Lanfrica

kevlorelevity/kabisa-app

Domain:

natural language processingeducation

Record type:

software
Creator:
kev
Host:
App for Kenyan Swahili # Kabisa Swahili App A learning app for **spoken Kenyan Swahili** — the everyday register actually used on the streets of Nairobi, Mombasa, Kisumu — taught with the textbook *Sanifu* equivalent always shown alongside. V1 is for absolute beginners. Scope is deliberately narrow: only the m/wa and n/n noun classes, only present tense, simple vocabulary from a curated seed. *Skeleton first, then dress it up.* --- ## Stack - **Vite 8** + **React 19** + **TypeScript 5.9** (strict) - **react-router-dom 7** - **Tailwind 3** - **Vitest 4** + **@testing-library/react** - **Supabase** — Postgres, Google OAuth, Row-Level Security Front-end talks to Supabase directly via `@supabase/supabase-js`. No separate backend. --- ## Setup ```bash # 1. Clone and install npm install # 2. Provision Supabase # Follow db/README.md to create the project and apply the two SQL # migrations (db/migrations/001_init.sql and 002_rls.sql). # 3. Configure env cp .env.example .env.local # Fill in the four values from Supabase Settings → API. # 4. Seed content npm run db:seed # Loads every content/modules/*.json into the live DB. Idempotent. # 5. Run the dev server npm run dev ``` Without `.env.local`, the prototype still runs against the local JSON glob — useful for offline work and CI. As soon as Supabase env vars are set, the API client takes over. --- ## Scripts | Script | What it does | | :---- | :---- | | `npm run dev` | Vite dev server at `localhost` | | `npm run build` | `tsc -b && vite build` → `dist/` | | `npm run preview` | Serve the built `dist/` locally | | `npm test` | Vitest, single run | | `npm run lint` | ESLint | | `npm run db:seed` | Load `content/modules/*.json` into Supabase | --- ## Project structure ``` content/modules/ JSON authoring files (one module per file) db/ migrations/ Postgres migrations (apply in order) seed/ Node seed loader (content → Supabase) docs/ schema.md Corpus contract …