A cross-platform mobile application built with Flutter that delivers accessible learning experiences for people with disabilities in Rwanda.
# Inclusive Learning Platform
> A cross-platform mobile application built with Flutter that delivers accessible learning experiences for people with disabilities in Rwanda.
---
## Table of Contents
1. About the Project
2. Project Structure
3. Code Quality & Testing
4. Features
5. Getting Started
6. Firebase Setup
7. Firestore Collections Structure
8. State Management
9. Navigation Structure
10. Tech Stack & Dependencies
---
## About the Project
The Inclusive Learning Platform removes barriers to education for people with disabilities by combining adaptive accessibility onboarding, structured course content, a skill portfolio manager, and a peer mentorship network in a single app. The platform targets learners in Rwanda and supports Visual, Auditory, Motor, and Cognitive accessibility profiles.
Key design decisions:
- **Flutter** — one codebase for Android and iOS, with responsive layouts that switch from list to grid at 600 dp.
- **Firebase** — serverless backend; zero infrastructure to manage.
- **BLoC pattern** — strict separation of UI and business logic, making every feature independently testable.
- **Material 3** with a custom teal (`#00D4D4`) accent, with full light/dark theme support.
---
## Project Structure
```text
lib/
├── main.dart # App entry point, route table, global BLoC providers
├── firebase_options.dart # FlutterFire-generated Firebase config
│
├── blocs/ # Business logic layer
│ ├── auth_bloc.dart # Authentication state machine
│ ├── accessibility_bloc.dart # Accessibility preference state
│ ├── discover_bloc.dart # Course catalogue, search, progress, bookmarks
│ ├── mentorship_bloc.dart # Mentor listing and bookmarks
│ ├── skills_bloc.dart # Skill portfolio CRUD
│ └── theme_bloc.dart # Light / dark theme toggle
│
├── data/
│ ├── models/ # Plain Dart model classes with Fir …