OwlMark is a responsive web application that supports the marking and management of optically-marked exams.
Our application was developed to be an efficient alternative to the sole Scantron machine at UBC Okanagan (UBCO). It was commissioned by Dr. Ramon Lawrence, the Academic Director of UBCO's Centre for Teaching & Learning to address the deficiencies of the university's current approach to bubble-sheet exam marking. The main target users are instructors, but students will also be able to view and review their marked exams. In particular, OwlMark allows instructors to batch upload bubble-sheet exams, efficiently mark them using an optical mark recognition (OMR) system, and to view the associated exam statistics. To account for marking errors, our system also offers a reporting system to users.
.
├── backend # Backend infrastructure
| ├── migrations # Database migration files
| ├── src # Relavant source code for the backend
| ├── test # Integration tests for backend endpoints
| ├── uploads # Files uploaded to backend that can be used by frontend application
│ └── ...
├── docs # Documentation files
│ ├── TOC.md # Table of contents
│ ├── communication # Meeting notes and client communication
│ ├── design # Documentation related to the project design
│ ├── final # Final documentation
│ ├── plan # Project plan
│ └── weekly logs # Individual and team logs
├── frontend # Frontend infrastructure
| ├── public # Static assets
| ├── src # Source code for the frontend
│ └── ...
├── tasks # Utilities for the OMR system
| ├── bubble-sheet-generator # Utility for generating custom bubble sheets
| ├── OMR-tool # Utility for grading bubble-sheet exams using computer vision
├── uploads # Files uploaded to the system
├── ...
├── LICENSE # The license for this project
└── README.md # This file!
In order to run the application, the following dependencies need to be installed:
Please refer to the READMEs found in the subfolders for instructions to run individual components of the application.
The following steps describe how the application can be run locally outside of a container:
-
Setup the backend by following the installation steps.
-
Setup the frontend by following the installation steps.
-
Setup the OMR utlities for the bubble sheet generator and the OMR tool.
-
Finally, in the root folder of this project (where this README is located), run:
cp .env.example .env
and then,
docker compose up redis postgres -d
to start the PostgreSQL and Redis Docker containers.
- Frontend
- Backend
- Database
- Containerization
OwlMark is delivered to you by