This project automates the grading and feedback process for student assignments. It extracts data from student submissions, generates individual reports, and emails them to students. Additionally, it creates a summary page and emails the professor with a tarball containing all reports.
- Grading: The system grades assignments based on a rubric (addresses, decimals, prices, phone numbers, emails).
- Report Generation: Creates HTML reports for each student detailing their submission and score.
- Summary Page: Generates an index.html with links to each student's report.
- Tarball Creation: Creates a tar.gz file containing all submissions, reports, and the summary page.
- Email Reports: Sends individual reports to students and a summary tarball to the professor.
- Python 3.6+
- Libraries:
os,re,csv,tarfile,jinja2 - Access to
muttcommand for sending emails
- submissions/: Folder containing student submissions.
- reports/: Folder where generated reports will be stored.
- index.html: Summary page linking to all reports.
- submission_reports.tar.gz: Compressed file containing all reports and submissions.
- roster.csv: CSV file with student IDs and email addresses.
- Address: 4 points
- Decimal: 4 points
- Price: 4 points
- Phone Number: 4 points
- Email: 4 points
- Max Score: 20 points
- Place student submissions in the
submissions/directory. - Ensure the
Roster.csvfile contains student IDs and email addresses. - Run the Python script to generate reports, create the tarball, and send emails.
- Student reports are sent to the email addresses from
Roster.csv. - The professor receives a
submission_reports.tar.gzcontaining the reports and submissions.
- Ensure the necessary directories and files are in place.
- Execute the Python script.
- Enter the professor's email address when prompted to send the summary tarball.