Project Title: Document Matcher for Cheating Detection
Client: A/Prof Guy Curtis
Start Date: 29th Jul 2024
End Date: 14th Oct 2024, 5:00 PM
Methodology: Scrum
Sprints: 3
UWA ID | Name | GitHub Username | Alternative Usernames |
---|---|---|---|
23335907 | Elijah Mullens | Elijah017 | elijah |
23326698 | Jack Blackwood | QuamCode | Quamsy |
23171563 | Yiu Xuan Lok | loklokyx | Lok Yx, YxLok |
23687543 | Chun Kit Lai | Lu0922 | lu0922, Lai Chun Kit |
23616047 | Finlay O'Loughlin | FinOloughlin | Finlay O'Loughlin |
23422858 | Aidan Power | normit581 | aidan |
Objective:
Develop a Document Matcher tool that automates the process of comparing rsid codes in Microsoft Word documents to identify potential instances of cheating or collusion in an academic setting.
Scope:
- Develop a backend for extracting and comparing rsid codes from Word documents.
- Develop a frontend interface for users to upload and view document comparisons.
- Ensure data privacy and security compliance.
- Provide thorough documentation and user manuals.
Deliverables:
- Functional prototype by the end of the first sprint.
- Fully operational tool by the end of the third sprint.
- User manuals and technical documentation.
- Regular progress reports.
Features:
- Document Comparison: Automates the comparison of rsid codes in Word documents to detect similarities and potential cheating.
- User Interface: Intuitive frontend interface for easy document uploads and visual comparison.
- Metadata Extraction: Extracts and displays metadata for a more thorough analysis of the documents.
- PDF Export: Ability to export the comparison results and metadata into a PDF format.
- Customisation Options: Users can customise colors and display settings for better visualisation.
- Error Handling: Robust error handling for file uploads and validation checks.
DocuMatcher uses environment variables to configure many of its settings. These environment variables must be set prior to deploying and cannot be performed by the deployment script.
The config file that is parsed during deployment is app.env
, so it must contain all the following variables.
Variable Name | Required | Description |
---|---|---|
FLASK_DEBUG |
Optional | Should only be set to True during development |
SECRET_KEY |
Required | A key that can be used to protect the website. Follow these steps to configure a key |
Run the following command and copy its output into app.env
:
python -c 'import secrets; print(secrets.token_hex())'
app.env
when properly configured for deployment should look something like
this (the SECRET_KEY used is just an example)
FLASK_DEBUG=False
SECRET_KEY=06ca425d9bc0b3375983f595c849d4ff755d9dd727a4f98bd40d3c6fb6957a87
Flask, Jinja2, JQuery, Bootstrap V5.3, Tippy.js