Logo Lanfrica

rdjWiss/kabyle-learner

Domaine:

natural language processingeducation

Type de record:

softwaretools
Créateur:
rdj
Hôte:
# Kabyle Learner A simple web app for studying and revising the Kabyle language (North Africa), built with React, Vite, TypeScript, and Tailwind CSS. 🔗 **Live site**: kabyle-learner on GitHub Pages --- ## 🚀 Features - 📚 Browse lessons with vocabulary and example phrases - ✅ Take interactive quizzes with feedback and score tracking - ⏱ Timer-based questions - 🔁 Retry quizzes with new random questions - ⛔ Stop quiz anytime - 🔊 Sound effects for correct and wrong answers - 🎨 Clean UI using Tailwind CSS with Amazigh theme colors - 📱 Mobile-friendly layout - 🧭 Routing with React Router - 🚫 404 page for unmatched routes - 🧪 Cypress component tests - ⚙️ GitHub Actions CI/CD pipeline --- ## 💪 Tech Stack - Vite - React - TypeScript - Tailwind CSS v4 - React Router DOM - Cypress for component testing - GitHub Actions for CI/CD --- ## 📦 Setup Instructions ### 1. Clone the repo ```bash git clone github.com cd kabyle-learner ``` ### 2. Install dependencies ```bash npm install ``` ### 3. Run the development server ```bash npm run dev ``` The app will be available at: `localhost` --- ## 🧪 Running Tests ### Run Cypress Component Tests ```bash npx cypress open --component ``` You can also run tests headlessly: ```bash npx cypress run --component ``` Test files live in: ``` cypress/component/**/*.cy.tsx ``` --- ## 🔄 CI/CD Workflow This project uses **GitHub Actions** to: - Run Cypress component tests - Build the app with Vite - Deploy to **GitHub Pages** when pushing to `master` Workflow file: `.github/workflows/deploy.yaml` --- ## 🧺 Project Structure ``` src/ ├── assets/ # Static assets (e.g. sound effects) ├── components/ # (optional shared components) ├── data/ # Static lesson data (vocab + examples) │ └── lessons.ts ├── pages/ │ ├── Home.tsx │ ├── Lessons.tsx │ ├── LessonDetail.tsx │ ├── Quiz.tsx │ └── NotFound.tsx ├── App.tsx ├── main.tsx └── index.css …