A simple NiceGUI app that allows students to submit their work.
The students do mini projects for their exam. To prevent cheating, they are required to do screen recording and submit it along with their work. Previously, Google Form was being utilized which worked fine for just the project submission. However, since the video file can be quite huge, they face various difficulties submitting it via Google Form.
- Upload not completed in time due to poor network
- Server rejected for various reasons
- Upload failed due to insufficient storage in student's Google Drive
To address these issues, I had the idea of creating a local web server in one of the lab PCs where students would drop their files. However, it is not quite suitable for exam scenarios
- Students could view each others files
- Students could manipulate others submissions
- Students could submit multiple times
Therefore a more complex setup is needed.
You need Python to run this app. I developed and tested on Python 3.12, but anything after 3.6 should be fine.
You will also need Pipenv to install dependencies
- Clone/cownload the repository.
- Go to the project folder in a terminal/command prompt
- Install dependencies
pipenv install- Start the webserver (use
python3in Linux)
python app.py- Predefined student list
- Automatic renaming
- Only one submission per IP
- Submission management (stop accepting submissions, delete individual/all submissions etc.)
- Export to CSV
There are three pages
/_admin: admin stuff/: submission form/submitted: submission confirmation