# Amharic Learning PWA
A Progressive Web Application (PWA) designed to teach Amharic. This app features interactive modules to learn the Fidel script, vocabulary, grammar rules, and conversational dialogues. It embraces modern web technologies to provide a fully offline capable, fast, and accessible learning experience.
## Features
- **HomeScreen Dashboard:** Tracks your learning streak and XP, and dynamically unlocks modules as you progress.
- **Fidel Module:** Learn the Amharic characters (Fidels) with interactive tracing canvas, audio pronunciation, and a full character chart.
- **Vocab Module:** Learn essential vocabulary categorized by themes with audio support and example sentences.
- **Grammar Module:** Interactive grammar lessons with fill-in-the-blank exercises and contextual examples.
- **Dialogue Module:** Immersive conversations reflecting real-life scenarios with line-by-line audio and translations.
- **SRS (Spaced Repetition System):** Adaptive flashcard reviews to maintain long-term memory of learned concepts using a custom SM-2 algorithm.
- **PWA Capabilities:** Fully installable, functions completely offline, custom caching, and responsive design.
- **Dark Mode & Accessibility:** Supports system-level dark mode, semantic HTML, and correct language tagging for Ethiopic script (`lang="am"`).
## Tech Stack
- **Framework:** React 18, Vite
- **Language:** TypeScript
- **Styling:** Tailwind CSS
- **Routing:** React Router DOM
- **Storage:** IndexedDB (via `idb-keyval`)
- **PWA:** vite-plugin-pwa (with Workbox)
## Local Development
To run this project locally:
1. **Clone the repository:**
\`\`\`bash
git clone
cd "Amharic project"
\`\`\`
2. **Install dependencies:**
\`\`\`bash
npm install
\`\`\`
3. **Start the development server:**
\`\`\`bash
npm run dev
\`\`\`
The app will be available at `
localhost`.
4. **Build for production:**
\`\`\`bash
npm run build
\`\`\`
5. **Preview production build:**
\`\`\`bash
npm run preview
\`\`\`
This …