# Swahili Learning for Foreigners
A modern **Learning Management System (LMS)** built with Laravel to help non-Swahili speakers learn **Kiswahili** from scratch. Includes courses, lessons, flashcards, quizzes, progress tracking, certificates, a Swahili chatbot, and an **AI Translator** (OpenAI + ElevenLabs).
## Features
- **Role-based access**: Admin, Teacher, Student
- **Course management**: Beginner, intermediate, advanced levels
- **Lessons** with rich content and optional audio
- **Flashcards** with study mode and text-to-speech
- **Quizzes** with auto-grading, pass marks, timers, and retakes
- **Progress tracking** and automatic certificate issuance at 100% completion
- **PDF certificates** with public verification (`/verify/{code}`)
- **Quiz quality controls**: pass mark, timed attempts, retakes, detailed reports
- **Teacher analytics**: averages, struggling lessons, drop-off hotspots
- **Student insights**: streak, weekly goal, continue learning
- **In-app notifications** and admin audit logging
- **Search/filters** for courses, users, enrollments, certificates
- **AI Translator**: English ↔ Swahili via OpenAI; Listen via ElevenLabs
- **Swahili Chatbot**: Keyword-based assistance with chat history
- **REST API** (Laravel Sanctum) for future mobile app integration
- **MySQL** by default (SQLite still supported for quick demos)
## Tech Stack
- Laravel 12 (PHP 8.2+)
- MySQL / SQLite
- Bootstrap 5 + Tabler Icons
- Laravel Sanctum (API auth)
- OpenAI (translation / language tools)
- ElevenLabs (text-to-speech)
## Requirements
- PHP 8.2+
- Composer
- MySQL (or SQLite for quick local setup)
## Installation
```bash
# 1. Install dependencies
composer install
# 2. Environment setup
cp .env.example .env
php artisan key:generate
# 3. Configure database in .env (MySQL default)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=swahili_lms
DB_USERNAME=root
DB_PASSWORD=
# Create the database (XAMPP / MySQL):
# mysql -u root -e "CREATE DATABASE IF NOT …