This project is a Computer-Based Testing (CBT) system designed for a University. The application provides a platform for students to take exams online, while administrators can manage exams, questions, and results efficiently.
The CBT system is developed as a portfolio project to showcase my Backend and DevOps engineering skills. It demonstrates proficiency in building scalable, secure, and efficient web applications using modern technologies.
-
Student Features:
- User authentication and authorization
- Take exams online
- View exam results
-
Admin Features:
- Manage users (students and administrators)
- Create and manage exams
- Add, edit, and delete questions
- View and export results
- Backend: Node.js with Express.js
- Database: MongoDB
- DevOps: Docker, CI/CD pipelines, and deployment automation
- Node.js (v16 or higher)
- MongoDB
- Docker (optional for containerized deployment)
-
Clone the repository:
git clone https://github.com/ReubenDickson/cbt-app.git cd cbt-app -
Install dependencies:
npm install
-
Configure environment variables:
Create a.envfile in the root directory and add the following:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret PORT=3000
-
Start the application:
npm start
-
Access the application at
http://localhost:3000.
- Containerization: The application is containerized using Docker for consistent deployment across environments.
- CI/CD: Automated pipelines are set up for testing, building, and deploying the application.
- Monitoring: Tools like Prometheus and Grafana are integrated for application monitoring.
- Add support for multiple-choice and essay questions.
- Implement real-time monitoring of exams.
- Enhance security with role-based access control (RBAC).
- Deploy the application on cloud platforms like AWS or Azure.
This project is licensed under the MIT License.
For any inquiries, feel free to reach out:
- Email: reubendicksonebong@gmail.com
- LinkedIn: Reuben Dickson on LinkedIn
- GitHub: Reuben Dickson on GitHub