{"id":17698934,"url":"https://github.com/m1-elmasry/quickmark","last_synced_at":"2026-05-10T09:33:25.600Z","repository":{"id":216764161,"uuid":"742247060","full_name":"M1-Elmasry/QuickMark","owner":"M1-Elmasry","description":"Efficient OMR software designed for quick and precise grading of bubble sheet exams.","archived":false,"fork":false,"pushed_at":"2024-01-13T08:31:39.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-06T06:33:04.079Z","etag":null,"topics":["bubble-sheet","image-processing","numpy","opencv","python"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/M1-Elmasry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-12T03:52:13.000Z","updated_at":"2024-01-13T08:21:27.000Z","dependencies_parsed_at":"2024-01-12T17:43:44.885Z","dependency_job_id":"d198005e-29a0-44d0-8c82-7be51e3d682c","html_url":"https://github.com/M1-Elmasry/QuickMark","commit_stats":null,"previous_names":["m1-elmasry/quickmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M1-Elmasry%2FQuickMark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M1-Elmasry%2FQuickMark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M1-Elmasry%2FQuickMark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/M1-Elmasry%2FQuickMark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/M1-Elmasry","download_url":"https://codeload.github.com/M1-Elmasry/QuickMark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246399802,"owners_count":20770909,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubble-sheet","image-processing","numpy","opencv","python"],"created_at":"2024-10-24T15:43:43.086Z","updated_at":"2026-05-10T09:33:25.595Z","avatar_url":"https://github.com/M1-Elmasry.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# QuickMark\n\n## Project Overview\nA Software is designed to automate the correction of bubble sheet exams for educational organizations. With a focus on efficiency, it significantly reduces the time and effort required for the correction process, empowers professors and teachers to allocate more time for more important tasks.\n\n## Technologies Used\n- **Core Language:** Python\n- **Image Processing Libraries:** OpenCV, NumPy\n- **Backend:** FastAPI\n- **Frontend:** HTML, CSS, Vue.js (under development)\n\n## Key Features\n- **Error Handling:** Utilizes various techniques to address unclear sheets or non-correct shaded responses.\n- **Low Error Rate:** Achieves an error rate of less than 0.5%.\n- **Speed:** Rapidly corrects each sheet in about 200ms.\n- **Analysis:** Provides insightful performance metrics for students after each exam.\n- **Simplicity:** The correction process involves four straightforward steps: choose sheet model, upload model answer, upload sheets, download results, and analysis.\n\n## Challenges and Solutions\nEncountered challenges, including low performance and difficulties in error handling, were solved through continuous improvement and algorithm refinement.\n\n## Project Structure\nThe project is organized into three main components:\n1. **Core Program:** Manages the fundamental functionality of the correction process.\n2. **Backend:** Implements server-side logic\n3. **Frontend:** Currently under development\n\n## Testing and Validation\n- The software is currently in beta and serves as the primary program for correcting bubble sheet exams at **Borg Alarab Technological Unversity** (Alex, Egypt).\n\n## Usage and Installation\n- The software is not yet available for public usage as it is still in beta.\n- For trying or more details, please contact me directly via email at [mostafamfelmasry@outlook.com].\n\n## Output samples\n\n![Demo Image](images/result_file_sample.png)  \nhere is a final output file sample provide a full info about the corrected sheet(s).\n\n### columns explaination ###\n -  **student ID :** the id of the student  \n -  **Mark :** sum of corrected question in the exam  \n -  **Page :** i added this column for better exprience if the examiner wants to know where this sheet in the sheets file to manual review for example. imagine you want a sheet from file contains 500 sheet and you only have the student id, waste of time right?, for that reason i added this column  \n -  **Qx :** the answer of the student in the question number x, there is four possible result (`1` for true answer, `0` for false answer, `M` this appear if the student shade more than bubble and this treats a false answer, `Z` apear when the student shad 0 bubbles and this treats as false answer too)\n\u003cbr/\u003e\u003cbr/\u003e\n\n![Demo Image](images/process_sheet_endpoint.png)  \nThis screenshot shows interactions with the backend with uploading `sheets.pdf` and get the result in `result.zip` through simple commands and clear feedback.\n\n\n## Future Plans\n- Web app development is currently underway.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm1-elmasry%2Fquickmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm1-elmasry%2Fquickmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm1-elmasry%2Fquickmark/lists"}