Development of a Question Bank Management System

Paschal

Paschal Elechi

Case Study: Question Bank Management System (Node.js, React, MySQL, Docker, Nginx, AWS)

Overview

The Question Bank Management System is a full-stack web application built to streamline how educational institutions and instructors manage and organize computer-based test (CBT) questions. Designed with Node.js, React, and MySQL, the system enables instructors to create, edit, delete, store, categorize, and review questions efficiently by classes (e.g., Cloud Computing) and cohorts (e.g., First Cohort).
The platform introduces a structured workflow where questions undergo a review and approval process before being published, ensuring accuracy and standardization across exams. The system is built for scalability, reliability, and continuous delivery using Docker, GitHub Actions, Nginx, and AWS.

Challenges

Traditional question management systems often lack collaborative tools for review, scalable infrastructure, and efficient automation in deployment. The main challenges addressed include:
Reducing duplication and manual handling of CBT questions.
Introducing a review and approval workflow to improve quality control.
Automating deployment pipelines for a reliable and maintainable infrastructure.
Ensuring the system is secure, scalable, and high-performing in production.

Solution

The Question Bank System was engineered as a modular, containerized, and CI/CD-ready platform that provides a seamless experience for both instructors and reviewers.
1. Question Management
Instructors can create, edit, delete, and categorize questions by classes and cohorts.
Questions are stored with metadata such as Cohort, Classes, and session information.
Each question can be assigned to multiple categories/multi choice or true/false questions.
2. Review & Approval Workflow
A dedicated review section allows the instructors to evaluate submitted questions.
Instructors can approve, reject, or edits questions.
Once approved, questions are marked as Active and become available for official CBT use.
3. Authentication & Access Control
JWT-based authentication for secure access.
Role-based access control (RBAC):
Instructors: Create and manage questions.
Admins: Oversee system configurations and manage user permissions.
4. CI/CD with GitHub Actions
Automated workflows built with GitHub Actions for:
Running tests and lint checks on every commit.
Building Docker images for backend and frontend.
Deploying updated images automatically to AWS EC2 on successful builds.
Integrated notifications for deployment success/failure.
5. Docker & Nginx Reverse Proxy
Both backend and frontend are containerized using Docker Compose for portability.
Nginx configured as a reverse proxy, routing requests to Node.js API and React frontend.
Optimized for SSL termination and caching static assets for faster delivery.
6. Deployment on AWS
Deployed on AWS EC2 instances with auto-restart policies for containers.
Database hosted on Amazon RDS (MySQL) for reliability and automatic backups.
Nginx reverse proxy ensures high availability and load handling.
Docker images stored and pulled from DOCKER HUB.

Tech Stack

Frontend: React (TypeScript)
Backend: Node.js (Express.js Framework)
Database: MySQL (Hosted on AWS)
Authentication: JWT + Role-Based Access Control
Containerization: Docker & Docker Compose
Web Server: Nginx (Reverse Proxy)
CI/CD: GitHub Actions
Hosting: AWS EC2

Results & Impact

Reduced manual question management time by over 30% through automation.
Improved question accuracy and quality with a structured review-approval pipeline.
Seamless and zero-downtime deployments via GitHub Actions + Docker on AWS.
Enhanced performance and scalability through Nginx caching and container orchestration.
My Role
Backend Developer
Architected the RESTful API using Node.js and Express.
Designed database schema for question, review, and user modules.
Implemented review and approval workflow with role-based access.
Configured Docker and Nginx for development and production.
Set up CI/CD pipelines using GitHub Actions for automatic testing and deployment.
Deployed the application to AWS EC2.

Media

Like this project

Posted Nov 12, 2025

Developed a Question Bank Management System for educational institutions using Node.js, React, and AWS.

Likes

0

Views

0

Timeline

May 9, 2025 - Jun 23, 2025