Zeba Academy Exam Proctor UI
A powerful Flutter package for building secure online exam interfaces with proctoring features.
zeba_academy_exam_proctor_ui provides reusable UI components and controllers for:
- Exam countdown timer
- Fullscreen exam mode
- Warning management
- Attempt tracking
- Violation detection
⨠Features
ā± Exam Timer
- Configurable exam duration
- Live countdown display
- Automatic exam completion handling
- Timer formatting support
š„ Fullscreen Mode
- Immersive exam environment
- Fullscreen management
- Detect fullscreen exits
- Track fullscreen violations
ā ļø Warning System
- Custom warning limits
- Warning callbacks
- Violation-based warnings
- Exam security control
š Attempt Tracking
- Track exam attempts
- Limit maximum attempts
- Attempt history support
šØ Violation Events
Track suspicious activities:
- Fullscreen exit
- Tab switching
- Copy attempts
- Suspicious actions
Installation
Add this package to your pubspec.yaml:
dependencies:
zeba_academy_exam_proctor_ui: ^1.0.0
Run:
flutter pub get
Usage
Import the package:
import 'package:zeba_academy_exam_proctor_ui/zeba_academy_exam_proctor_ui.dart';
Create Exam Configuration
final config = ExamConfig(
duration:
Duration(minutes: 60),
maxWarnings: 3,
maxAttempts: 1,
);
Create Proctor Controller
final controller =
ExamProctorController(
config,
);
Add Proctor Screen
ProctorScreen(
controller: controller,
child: ExamPage(),
);
Your exam now includes:
ā
Timer
ā
Fullscreen protection
ā
Warning system
ā
Attempt tracking
Handling Violations
controller.addViolation(
ViolationType.copyAttempt
);
Available violation types:
ViolationType.fullscreenExit
ViolationType.tabChange
ViolationType.copyAttempt
ViolationType.suspiciousActivity
Timer Example
ExamTimer(
controller: controller,
)
Output:
59:59
Warning Handling
controller.onWarning = () {
print(
"Warning detected"
);
};
Time Completion
controller.onTimeFinished = () {
print(
"Exam completed"
);
};
Project Structure
lib/
āāā zeba_academy_exam_proctor_ui.dart
āāā src/
āāā models/
ā āāā exam_config.dart
ā āāā violation_event.dart
ā
āāā controllers/
ā āāā exam_proctor_controller.dart
ā
āāā widgets/
ā āāā proctor_screen.dart
ā āāā exam_timer.dart
ā
āāā services/
āāā fullscreen_service.dart
Requirements
Flutter:
>=3.10.0
Dart:
>=3.0.0 <4.0.0
Roadmap
Future improvements:
- AI-based proctoring support
- Screen recording integration
- Cloud violation reports
- Exam analytics dashboard
- Remote monitoring
- Custom themes
- Localization
Contributing
Contributions are welcome!
Steps:
-
Fork the repository
-
Create a feature branch
git checkout -b feature/new-feature
- Commit changes
git commit -m "Add new feature"
- Push branch
git push origin feature/new-feature
- Open Pull Request
About Me
⨠Iām Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.
You can learn more about me and my work at:
Connect with me:
LinkedIn:
https://www.linkedin.com/in/sufyanism
Zeba Academy
Your all-in-one learning hub!
š Explore courses and resources in coding, tech, and development at:
Learn practical skills through:
- Coding tutorials
- Development resources
- Real-world projects
- Technology courses
Explore:
Main website:
Hands-on coding resources:
YouTube tutorials:
https://www.youtube.com/@zeba.academy
Instagram:
https://www.instagram.com/zeba.academy/
License
This project is licensed under the GNU General Public License v3.0.
You are free to:
- Use
- Modify
- Share
- Distribute
Under the conditions of GPL-3.0.
See the full license:
LICENSE
ā Support
If this package helps you, consider giving it a star ā
Thank you for using Zeba Academy Exam Proctor UI š