A web-based virtual chemistry laboratory for KCSE learners in Kenya
# VirtuLab Kenya 🧪
> *"Every student deserves a laboratory."*
A web-based virtual chemistry laboratory for KCSE learners in Kenya — built to make high-quality practical science education accessible to every secondary school student, regardless of whether their school has a functioning physical laboratory.
---
## 🎯 The Problem
Over 60% of Kenyan secondary schools lack adequately equipped chemistry laboratories. Many students sit the KCSE Paper 3 practical examination having never performed or visualized the actual chemical reactions and techniques. **VirtuLab Kenya** bridges this gap through realistic, interactive, curriculum-aligned simulations that work across desktop computers, tablets, and mobile smartphones — even offline.
---
## ✨ Key Features
- **Students**:
- Perform realistic virtual practicals mapped directly to the KNEC KCSE Chemistry Paper 3 syllabus.
- Interactive SVG glassware rigs with drop-wise stopcock addition, meniscus lens viewfinders ($0.10\text{ cm}^3$ precision), flame test wire loops, and chemical precipitation reactions.
- Practice self-paced experiments with instant feedback or take timed **15-Minute KCSE Exam Mode** simulations scored with official KNEC grades (A–E).
- Step-by-step interactive guided tutorial walkthroughs.
- Full session history, accuracy tracking, and achievement badges.
- **Teachers**:
- Real-time class analytics dashboard with student drill-down performance profiles.
- Create and grade assignments with due dates and custom instructions.
- One-click printable PDF class performance reports and CSV data export.
- **System Administrators**:
- National platform metrics, school registration & CRUD management, user roster management (active/suspended states, password resets), security audit logs, and broadcast announcements.
- **Offline & Low-Bandwidth Optimized**:
- Progressive Web App (PWA) with Service Worker precaching so labs run smoothly without an active internet connection.
- **Bilingual**:
- Full English and Ki …