A free mobile app for Baccalaureate science and literary students with short video lessons and a quiz per lesson unlocking the next at 60%, built with Flutter and Laravel.

FocusBac is a free mobile learning app for Syrian Baccalaureate students in the scientific and literary tracks, built by a team of students with technical assistance from Techno Enjaz. The app organizes the curriculum into a clear hierarchy (track, then subject, then unit, then lesson), delivers lessons as short videos following the microlearning approach, and links each lesson to a short quiz: the next lesson unlocks only after the student scores 60% or more.
The app is built with Flutter for Android in its first phase, with a Laravel backend, a MySQL database, and a Filament admin panel from which supervisors manage content, quizzes, and users. It adds gamification elements such as points, achievements, and per-subject progress, aiming to reduce scattering across sources and organize revision before exams.
| Item | Details |
|---|---|
| Project type | Educational mobile app with an admin panel and an API |
| Field | E-learning, mobile learning, Flutter and Laravel development |
| Project status | First version implemented: admin panel, API backend, and core app screens |
| Techno Enjaz role | Technical support and assistance to the students during project development |
| Core technologies | Flutter and Dart, Laravel and PHP, Filament, MySQL, RESTful API, Laravel Sanctum, YouTube API |
| Outputs | Android app for scientific and literary track students, supervisor admin panel, ten-entity database, API |
Baccalaureate students face a dense, sprawling curriculum, while revision methods remain largely traditional. Delivering a large amount of information in a short time raises cognitive load and weakens deep understanding and retention. Without a tool to organize learning, students move between many scattered sources, making it hard to tell reliable content from unreliable or to know what actually matches the curriculum.
Many video channels and general apps also rely on passive viewing with no check of understanding, which can create an "illusion of competence": students feel they have understood a lesson, then struggle to recall it in the exam. Moving to a new lesson without confirming the previous one leads to accumulating knowledge gaps, and the lack of immediate feedback means weaknesses surface too late.
The project was carried out academically by the students, with technical assistance and support from Techno Enjaz during development. It is presented among the office's work as an example of its support for educational mobile app projects that combine a Flutter frontend, a Laravel backend, and an admin panel.
Students follow a mandatory cumulative learning path:
| Category | Functions |
|---|---|
| Content management | Adding, editing, and deleting subjects per track, dividing them into sequential units, and adding lessons with their video link |
| Assessment management | Creating a short quiz for each lesson and setting the pass mark (60%), adding multiple-choice or true/false questions, and defining the correct answer and distractors |
| Monitoring | Tracking student progress (completed lessons, results, attempts), viewing reports and statistics, and managing accounts (activate, suspend, reset password) |
| Layer | Technologies and role |
|---|---|
| Mobile app | Flutter and Dart with Material Design widgets, state management via Provider and BLoC, server communication via Dio/HTTP, the youtube_player_flutter player, and local storage via SharedPreferences and sqflite |
| Backend | Laravel on PHP using MVC, with Eloquent ORM, routing, Middleware for permission checks, Validation for registration data and quiz answers, and API Resources returning JSON |
| Admin panel | Filament for managing tracks, subjects, units, lessons, quizzes, users, and points, with roles and permissions (RBAC) |
| Database | MySQL normalized to third normal form (3NF), with tables created through Laravel Migrations |
| Integration | RESTful API with unified JSON responses (status, message, data), and YouTube Data API v3 for video hosting |
The API endpoints fall into four groups: authentication (register, log in, log out, refresh access token), content (tracks, subjects, units, lessons), quizzes and progress (fetch quiz, submit attempt, track progress, leaderboard), and profile and achievements.
The database was derived from the use cases into ten related entities:
| Entity | Description |
|---|---|
| User | Students and supervisors, distinguished by a role field |
| Branch | Study tracks (scientific, literary) |
| Subject | Subjects, linked to a track (one-to-many) |
| Unit | Units, linked to a subject |
| Lesson | Lessons, linked to a unit and holding the video link |
| Quiz | The lesson quiz, holding the pass mark |
| Question | Quiz questions |
| AnswerOption | Answer options with an is_correct field |
| UserProgress | Lesson completion status and attempts per student |
| QuizAttempt | Each quiz attempt and its result |
The design relies on token authentication through Laravel Sanctum, with a short-lived access token and a refresh token kept in secure storage on the device, role-based permission checks through Middleware, passwords stored hashed with bcrypt, encrypted connections, validation of all inputs, and returning only the necessary fields. For performance, the design includes caching in Laravel, lazy loading of lists in Flutter, and compression of JSON data and images.
The project's implementation chapter presents the following components:
| Implemented component | What it shows |
|---|---|
| users table in phpMyAdmin | Users with ID, name, email, hashed password, and track ID, plus two test accounts (admin and regular user) |
| Admin panel login | Email and password with show/hide and a "remember me" option, rejecting incorrect attempts |
| Admin dashboard home | A sidebar for users, points, tracks, subjects, units, lessons, and quizzes |
| User management | A table of name, email, role, and track with search, filtering, adding, and editing |
| AuthController | Logic for registration, login, and logout with data validation |
| api.php file | Routes for registration, profile, track selection, subjects, lessons, quizzes, and submitting answers, protected by the auth middleware |
| Migration files | Creating the users table linked to tracks via branch_id, plus session and password-reset tables |
| App screens | Onboarding, login, registration, track selection, and the home screen with "continue learning" and per-subject progress |
According to the outlook set out in the project:
If you are working on an educational app or academic platform for students and need technical help developing the idea or building a prototype, you can contact the Techno Enjaz office to discuss your project's requirements and the appropriate scope of support.
FocusBac is a free educational mobile app for Syrian Baccalaureate students in the scientific and literary tracks, built by a team of students with technical assistance from Techno Enjaz. It organizes the curriculum into tracks, subjects, units, and lessons, and delivers lessons as short videos linked to mandatory quizzes.
After watching the lesson video, the student takes a short quiz whose score is calculated against the correct answers and shown as a percentage. With 60% or more the next lesson unlocks; otherwise the student retries, and progress and points update automatically.
The mobile app is built with Flutter and Dart for Android, and the backend with Laravel on PHP using Eloquent ORM and Laravel Sanctum for authentication. Content is managed through a Filament admin panel, data is stored in MySQL, the app talks to the server via a RESTful API, and videos are hosted on YouTube.
Supervisors manage subjects, units, lessons, and video links for each track, and create a quiz per lesson with a 60% pass mark using multiple-choice or true/false questions. They also follow students' progress, results, and attempts, view reports, and manage accounts by activating, suspending, or resetting passwords.
The first version targets Android only, covers the scientific and literary tracks but not the vocational one, and includes no chat or external links. The implementation documents the admin panel and the login, registration, track-selection, and home screens, with no measurements of the app's effect on student achievement.
Reach out to Techno Enjaz engineering team to discuss technical feasibility, prototype hardware, and development scope.