ExamLock
Secure exams, live classroom workflows, and real-time proctor intervention.
DEMO
ExamLock is more than a lock screen for tests. It is a full classroom and assessment platform with:
- A Flutter mobile app for both students and teachers
- Role-based home layouts (RBAC) for student and teacher workflows
- A web dashboard used mainly for larger-screen convenience and expanded operations
- Shared real-time data and notifications through Firebase
What ExamLock Covers
- Classroom management (create/join/archive classes)
- Post workflows (announcements, files, and activities)
- Exam creation (timer, question sheet, security settings)
- Live proctor monitoring with lock/unlock controls
- Submission review, auto-checking, manual essay scoring, and grade exports
Mobile App Features (RBAC: Student + Teacher)
- Role-aware authentication (email/password + Google Sign-In)
- Role-based routing and home layouts (
studentandteacher)
Student Side (Mobile)
- Join classes using class code
- View class stream with announcements, files, and activities
- Take exams with countdown timer and continuous answer auto-save
- Exam pass (
exampass) before start (if required) - Lock passcode re-entry if exam is locked
- Anti-screenshot support
- Anti-copy/paste restrictions
- Immersive mode + background detection during active exam
- Real-time exam status sync (
Good,Warning,Locked,Ended) - View graded results and score details
- Notifications and unseen grade indicators
- Archive handling for joined classes
Teacher Side (Mobile)
- Dedicated teacher home layout with sections such as Classes, Activities, Notes, Students, Sheet, and Archive
- Create and manage classes
- Publish announcements, files, and activities
- Configure exam security (
antiScreenshot,antiCopyPaste,examLock,randomize, passcode, exampass) - Build or attach test sheets and answer keys
- Monitor students during active exams (test room flow)
- Review submissions and grading flows
- Manage students, class archive, and teacher notes
Web Dashboard (Teacher/Proctor) Features
- Web is primarily the teacher convenience layer for bigger screens and faster class operations
- Teacher-only web login and role validation
- Class management: create classes, share class code, manage enrollment, archive/unarchive/delete
- Post management: announcements, file/link posts, and activity posts
- Activity types:
exam,quiz,test,assignment,homework,prelim,midterm,semi-finals,finals - Activity security setup: countdown, anti-screenshot, anti-copy/paste, randomize, exam lock, passcode, exampass
- Saved sheet attachment and reusable test sheet management
- Real-time Test Room with status cards, lock/unlock, and lock all/unlock all
- Turn-in review with objective auto-check and manual essay scoring
- Class record controls: category percentage weights + Excel export
- Personal teacher notes and profile/password management
Tech Stack
| Layer | Technologies |
|---|---|
| Mobile (Student + Teacher App) | Flutter, Dart, Material UI, flutter_windowmanager_plus
|
| Web (Teacher Dashboard) | HTML5, CSS3, Vanilla JavaScript (ES modules), Firebase Web SDK |
| Backend/Data | Firebase Realtime Database, Firebase Authentication, Cloud Firestore |
| Notifications | Firebase Cloud Messaging (FCM), Cloud Functions (cloud_functions/) |
| Hosting | Firebase Hosting, Netlify scripts |
Platform Architecture
ExamLock runs as a dual-client system:
- Mobile client (
lib/): student and teacher experiences under RBAC - Web client (
web/): teacher-focused convenience interface for larger displays and extended workflows
Both clients read/write shared Firebase nodes for classes, posts, testroom status, submissions, and scores.
How to Use (Student Mobile)
- Sign up/login and select Student role.
- Join a class using the class code provided by your teacher.
- Open the activity/exam from your class feed.
- Enter exam pass if required, then start the exam.
- Answer questions while timer and progress auto-save run in real time.
- If locked, enter the required passcode to continue.
- Submit before timeout and review grades/results when released.
How to Use (Teacher: Mobile or Web)
- Login using a Teacher account (mobile app or web portal).
- Create/open a class, then share class code with students.
- Create posts:
- Announcement for updates
- File/link for materials
- Activity for exams/quizzes/tests/assignments
- For activities, set security/timer options and attach or create a test sheet.
- Open Test Room during live exams to monitor students and lock/unlock as needed (mobile or web).
- Review turn-ins, score essays, and publish/update grades.
- Use web for heavier convenience tasks like class record percentage setup and Excel export.
Notes
- ExamLock is designed as a full classroom + assessment system, not only exam locking.
- Real-time behavior depends on Firebase Realtime Database synchronization.
- For production, enforce strict Firebase Security Rules and role-based access.
This article was originally published by DEV Community and written by Zheus Leiandre Codez Cajote.
Read original article on DEV Community
