📐 Online Examination App

Published:

oea_homepage

Project Timeline

August 2020 - October 2020

Github: https://github.com/ZhangzihanGit/Online-Examination-App

Project Description

This project is a simulated Online Examination App that allows an administrator to manage different subjects, exams, instructors, and students; allows instructors to create/update/delete/publish/close/mark exams; allows students to take exams. The application also takes care of concurrency and security issues.

This project intended to explore many patterns used in the enterprise, so no backend frameworks were used.

Tech Stack

oea_tomcat

Main Features

User Abilities

Admin has the ability to:

  • create new subjects
  • view all subjects and associated instructors, students, and exams
oea_admin
oea_admin_detailed


Instructor has the ability to:

  • view subjects he/she teaches
  • create/update/delete/mark/publish/close exams
  • mark students’ submissions in table and detailed view
oea_instructor
oea_edit
oea_mark
oea_detailed_mark


Student has the ability to:

  • view subjects he/she enrolls
  • take available exams
oea_student

Patterns Used

CategoryPatterns
Organising domain logicDomain model
Architecture design for data-source layerData mapper
Object-to-relational behavioral designUnit of work; Lazy load
Object-to-relational structural designIdentity field; Foreign key mapping; Association table mapping; Embedded value; Single table inheritance
ConcurrencyPessimistic offline lock
SecurityAuthentication enforcer; Authorisation enforcer; Secure Pipe


Appendix

oea_fullstack

Source: https://www3.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html