Tetouani Darija — a private learning site for Tetouan's Northern Moroccan Arabic. Static, offline-capable, no dependencies.
# Northern Darija — Tetouan
A private, two-person learning site: one student (Hamza), one teacher. No build step, no
dependencies, no accounts. Plain HTML/CSS/JS — open `index.html` and it works, online or off.
**All content is Tetouan / Northern Moroccan Darija.** Every card is tagged `Northern / Tetouani`.
The tag system already supports a second variety (`National Moroccan`, amber) so that if national
forms are ever added they render in a visibly different colour and can never be mistaken for
Northern content. No national-tagged content exists today.
## Running it
Open `index.html` directly, or serve the folder:
cd darija-tetouan && python3 -m http.server 8000 # →
localhost
To use it on Hamza's phone, drop the folder on any static host (GitHub Pages, Netlify,
Cloudflare Pages — no configuration needed).
## Pages
| Route | What it is |
|---|---|
| `#/` | Dashboard — current week, progress strip, quick links |
| `#/course/month1` | Month 1 overview, week list, checkpoint link, locked Months 2–3 |
| `#/course/month1/week/1..4` | Objective, Days 1–7, that week's cards, self-check, self-rating |
| `#/vocab` | Every card, searchable, filterable by week / flagged / extras |
| `#/situations` | 8 real scenes, each a set of English→Darija sentence ladders |
| `#/sentences` | 40 complex sentences, each broken into the pieces it is built from |
| `#/dialect` | What makes it Tetouani — contrasts scoped to the city, with sources |
| `#/tests` | Six short test formats, all generated from the card data |
| `#/practice` | Flashcards (English → tap to reveal Darija) and the Month 1 checkpoint |
| `#/progress` | All weeks and months, self-marked status over time |
| `#/teacher` | Teacher dashboard — progress, test results, session log, verification queue, add-your-own-phrase, week notes, backup |
| `#/feedback` | Feedback inbox — every note you left, grouped by page, exportable as markdown |
The **Student / Teacher** toggle sits in the header and switches t …