Digitally Unified Classroom Keeper - a suite of tools that help run a modern classroom
- Python 54.1%
- JavaScript 41.5%
- HTML 2.7%
- Dockerfile 1.1%
- Shell 0.5%
- Other 0.1%
DUCK
Digitally Unified Classroom Keeper - a suite of tools that help run a modern classroom
Architecture
This will be a Django project. We'll use Postgresql as the back-end.
DB Schema documented in the schema directory. This schema is generated
automatically from core/models.py using
https://github.com/django-extensions/django-extensions
To update it, run:
python manage.py graph_models core -o schema/schema.png
This requires graphviz to be installed on the system: sudo apt install graphviz
Some sample data for development is provided in schema/fixture.json. After
running django migrations, you can load it with
python manage.py loaddata schema/fixture.json
Proposed Components
- An account management system - students will be able to login with their NOVA credentials (via oauth/Django Allauth) and tell us about their usernames on Codeberg / Github / other git forges. They can also update preferred name, pronouns, and a current photo that will appear on their flash card
- Hall Passes - students will be able to request hall passes
- Assignment Grader - Teachers can list assignments. Each assignment will include one or many file paths. Students will be able to see whether there is a file with that name in their repo. Teachers will be able to see files relevant to the assignment from all students' repos
- Attendance - students will check in to class
- Flash Cards - teachers can use these to learn student names at the beginning of the year.
- Contributions - for group projects and shared repos, a report that shows how many commits, PRs, etc each student has made
- A setup workflow - that teachers can use to setup student accounts from a roster
Previous Work
This project largely combines tools that have been constructed in several different repos:
- https://github.com/cj0ne5/student_flashcards - Flash cards written in PyGame, with SQLAlchemy code that sets up a student sqlitedb from a roster
- https://github.com/cj0ne5/Duck - a hall pass app written in Flask, with a client app that runs on a Raspberry Pi and prints hall passes to a receipt printer
- https://github.com/specreaper/SE_Capstone_Projects - contains
GradeHelper.js, which finds files in student repos - Contributions Dashboard - written in Google Apps Script, copied to the
legacydirectory in this repo