A secure, transparent, and integrity-focused online examination system built for modern educational institutions.
Live Demo Β |Β Report a Bug Β |Β Discussions
Dexa is a web-based Computer Based Test (CBT) application developed with Laravel 12 and Bootstrap 5. It was designed to address a fundamental problem in modern digital examination: the widespread availability of tools and techniques that allow students to cheat during online tests.
Conventional web-based exam systems leave significant gaps β tab switching, browser automation, and scoring manipulation are all relatively easy to exploit. Dexa closes those gaps with a real-time activity monitoring system, a comprehensive audit log, and automated evaluation workflows that reduce the opportunity for human error or interference.
The platform is currently deployed and in active use at SMK Assalaam Bandung.
- Real-Time Activity Monitoring β Tracks participant behavior throughout the examination session, flagging suspicious interactions as they occur.
- Tab Switch Detection β Records the number of times a participant navigates away from the exam window and surfaces this data to supervisors.
- Comprehensive Audit Logs β Every action taken during a session is logged with timestamps, providing a verifiable record of each participant's behavior.
- Automated Supervisor Alerts β Exam proctors receive immediate notifications when anomalous activity is detected.
- Multiple Question Types β Supports multiple choice, essay, and other question formats to accommodate diverse assessment needs.
- Scheduling and Time Controls β Administrators can define exam windows, enforce per-question or per-exam time limits, and restrict access outside scheduled periods.
- Question Bank β Questions are organized by subject, topic, and difficulty, making it easy to assemble and reuse exam content across sessions.
- Automated Grading β Objective question types are graded instantly upon submission.
- Result Transparency β Participants can review their results with clearly presented scores and, where applicable, answer breakdowns.
- Export and Reporting β Administrators can export exam results for further analysis or institutional record-keeping.
| Layer | Technology | Version | Purpose |
|---|---|---|---|
| Backend | Laravel | 12 | Application framework, routing, ORM |
| Frontend | Bootstrap | 5 | Responsive UI components and layout |
| Database | MySQL / MariaDB | 8.0+ | Relational data storage |
| Runtime | PHP | 8.2+ | Server-side scripting |
| Build Tools | Node.js / NPM | LTS | Asset compilation via Vite |
Before installing Dexa, ensure your environment meets the following prerequisites:
- PHP >= 8.2 with the following extensions:
BCMath,Ctype,Fileinfo,JSON,Mbstring,OpenSSL,PDO,Tokenizer,XML - Composer >= 2.x
- Node.js (LTS) and NPM
- MySQL >= 8.0 or MariaDB >= 10.4
- A web server such as Apache or Nginx (for production deployments)
git clone https://github.com/DapCodes/Kensho-Learning.git
cd Kensho-Learningcomposer installnpm install
npm run buildFor local development, use
npm run devinstead to enable hot module replacement.
cp .env.example .env
php artisan key:generateOpen the .env file and update the following values to match your local environment:
APP_NAME="Dexa CBT"
APP_ENV=local
APP_URL=http://localhost:8000
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dexa_cbt
DB_USERNAME=your_database_username
DB_PASSWORD=your_database_passwordphp artisan migrate --seedThis will create all necessary tables and populate the database with default data, including an initial administrator account.
php artisan serveThe application will be available at http://localhost:8000.
After running the database seeder, the following accounts are available for initial access:
| Role | Password | |
|---|---|---|
| Administrator | admin@example.com | password |
| Participant | student@example.com | password |
Important: Change all default passwords immediately before deploying to a production environment.
For production deployments, the following additional steps are recommended:
# Set the environment to production
APP_ENV=production
APP_DEBUG=false
# Optimize the application
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Compile production assets
npm run buildEnsure your web server is configured to point to the /public directory as the document root. Refer to the Laravel deployment documentation for server-specific configuration examples.
dexa-cbt/
βββ app/
β βββ Http/
β β βββ Controllers/ # Application controllers
β β βββ Middleware/ # Request middleware (auth, proctoring)
β βββ Models/ # Eloquent models
β βββ Services/ # Business logic and exam scoring services
βββ database/
β βββ migrations/ # Database schema definitions
β βββ seeders/ # Default data seeders
βββ resources/
β βββ views/ # Blade templates
β βββ css/ # Stylesheets
β βββ js/ # JavaScript modules (tab detection, timers)
βββ routes/
β βββ web.php # Web routes
β βββ api.php # API routes
βββ public/ # Publicly accessible files
Contributions are welcome and encouraged. To contribute:
- Fork the repository.
- Create a new feature branch:
git checkout -b feature/your-feature-name - Commit your changes with a clear message:
git commit -m "Add: description of your change" - Push the branch to your fork:
git push origin feature/your-feature-name - Open a Pull Request against the
mainbranch of this repository.
Please ensure your code follows the existing conventions and that any new functionality is accompanied by appropriate documentation. For significant changes, consider opening an issue first to discuss the proposed approach.
If you encounter a bug or have a question, please use one of the following channels:
- Bug Reports: Open an issue on GitHub
- General Discussion: GitHub Discussions
- Direct Contact: daffaramadhan929@gmail.com
When reporting a bug, please include your PHP version, Laravel version, a description of the problem, and steps to reproduce it.
This project is licensed under the MIT License.
Developed by the Tim Operasi Programmer Mengoding team.
Deployed at SMK Assalaam Bandung, West Java, Indonesia.
Β© 2025 Dexa CBT. All rights reserved.