# Amara — לימוד אמהרית לדוברי עברית
אפליקציית web מובייל-פירסט, RTL, ללימוד אמהרית (כולל כתב פידל) לדוברי עברית.
מסלול Course → Unit → Lesson → Exercise עם משחקיות, מילון, ותרגול קריאה/כתיבה
של הפידל. תוכנית העבודה המלאה — כולל סכמת DB, Audio Pipeline, השוואת ספקי
TTS, ושלבי הפיתוח — נמצאת ב-`/root/.claude/plans/soft-churning-sonnet.md`
(מסמך התכנון שאושר לפני תחילת הפיתוח).
> "Amara" הוא שם עבודה זמני (placeholder) — טרם נבחר שם מותג סופי.
## Stack
- React 19 + Vite + TypeScript
- Tailwind CSS v4 (`@tailwindcss/vite`, ללא `tailwind.config.js` — טוקנים ב-`src/index.css` תחת `@theme`)
- React Router v7
- Supabase (Auth, Postgres+RLS, Storage, Edge Functions) — עדיין לא מחובר בפועל; ראו `.env.example`
- Vitest + Testing Library לבדיקות יחידה, Playwright ל-e2e
- PWA בסיסי (manifest + service worker ידני ל-app shell)
## מבנה תיקיות
```
src/
app/ App shell + routing (App.tsx)
pages/ מסכי המוצר (13 מסכים לפי מסמך התכנון, סעיף 6)
components/
ui/ primitives גנריים
learning/ WordCard, AudioButton וכו'
exercises/ renderer לכל exercise_type (ייבנה משלב 6)
admin/
features/ לוגיקת דומיין (gamification/srs/progress — ייבנה בהמשך)
lib/
supabase/ client
i18n/ strings.ts (Hebrew-only ב-MVP, ראו הערה בקובץ)
types/ טיפוסים משותפים, תואמים לסכמת Supabase (סעיף 9 בתוכנית)
supabase/
migrations/ SQL migrations (Supabase CLI) — ייבנה משלב 1
functions/ Edge Functions: generate-audio, publish-audio — ייבנה משלב 4
seed.sql
tests/ vitest (יחידה) + playwright (e2e, ייבנה בהמשך)
```
## פיתוח מקומי
```bash
npm install
cp .env.example .env # למלא VITE_SUPABASE_URL / VITE_SUPABASE_ANON_KEY כשיש פרויקט Supabase
npm run dev
```
זמינות ללא Supabase מחובר: כל המסכים כרגע הם stubs שלא קוראים ל-Supabase, כך
שהאפליקציה עולה ורצה גם בלי `.env` מוגדר (עד שלב 1-2 בתוכנית).
## סקריפטים
| Script | מטרה |
|---|---|
| `npm run dev` | שרת פיתוח |
| `npm run build` | typecheck + build לפרודקשן |
| `npm ru …