This template includes an Excel-based status tracker and an automated weekly snapshot workflow for submissions.
- Create/update
docs/StatusTracker.xlsin Microsoft Excel (binary file; do not replace with CSV). - Use these columns in row 1:
- Week
- Activity Name
- Type
- Responsible
- Est Hours
- Actual Hours
- Status
- Add weekly header rows (Week 1, Week 2, etc.) so students fill in below each header.
- Save the file in
docs/and commit it.
.github/workflows/weekly-snapshot.ymlauto-creates weekly release snapshots..github/workflows/snapshot-integrity.ymldetects tampering of past weekly snapshots.docs/StatusTracker.xlsExcel tracker (update weekly).docs/ProjectPlan.mdproject plan template.docs/release-labels.txtoptional: add weekly labels/categories for TAs.docs/admin-setup.mdTA-only: required repo settings (tag protection).src/project source code.
.gitattributesmarks.xls/.xlsxas binary to avoid noisy diffs..gitignoreignores Office temp files like~$StatusTracker.xls.
Every Friday, GitHub Actions will:
- Require weekly activity:
docs/StatusTracker.xlsanddocs/ProjectPlan.mdmust have at least one commit in the current week window. - Create an immutable anchor: an annotated git tag
submission-week-Nis created pointing to the repository state for that week. - Create a release from that tag. The release body is exactly the annotated tag message.
- Include a hash manifest: the tag/release body includes sha256 hashes of every file under
src/anddocs/.
If any check fails, the weekly release/tag is not created (the workflow fails).
Edit docs/release-labels.txt. Its contents are included in the tag annotation + release body.
Teams may create additional git tags (e.g., milestone-1) on their own commits.
However, to prevent rewriting submission history, course admins should enable Tag protection for:
submission-week-*(no deletions / force-updates)
Another workflow runs periodically to verify that for every submission-week-* tag:
- the GitHub Release body matches the annotated tag message (SHA256 check)
If a mismatch is found, it fails and opens a GitHub Issue as an audit trail.
Note: GitHub cannot fully prevent cheating if students have full write access, but protected submission tags + hash manifests make manipulation difficult and highly detectable.
Use these interventions to discourage fabrication and enforce process adherence.
- Observer Effect Warning: reference a specific tracker data point to signal review. Script: "I noticed in your tracker that Task A took exactly 4.0 hours and Task B took exactly 4.0 hours. Real development usually has more variation (e.g., 3.5 or 4.25). Please ensure you are logging actual clock times, not rough estimates."
- Git History Trap: if commits show batching, ask for proof tied to the stated day. Script: "Your tracker says you finished the API setup on Tuesday. Can you show me the git commit hash corresponding to that specific task on Tuesday?"
- Variance Check: if variance is suspiciously low (e.g., every entry is 2 hours), deduct 10-20% of the weekly process grade for Data Quality. Justification: "Data Quality. The logs provided lack statistical realism and appear smoothed. This is poor project management practice."
- Friday Night Deduction: if the tracker was only touched right before the deadline, deduct 50% of the process grade for Lack of Continuous Integration. Justification: "Agile requires iterative tracking. Batch-updating at the deadline defeats the purpose of the tracker."
- Forensic Audit: if the tracker claims work with no code changes in
src/, conduct a Viva audit. Action: open GitHub Insights (Network graph) live, overlay tracker claims, and ask for the corresponding code. Outcome: if no code exists for claimed work, report Academic Dishonesty to the course professor.
- Integrity of Project Artifacts: The
StatusTracker.xlsis a living document, not a homework assignment. It must reflect the actual state of development. - Batch Updates: Updating logs retroactively for multiple days/weeks is considered a failure of process adherence.
- Fabrication: Logging hours for work not supported by version control evidence (git commits) constitutes academic dishonesty and will result in a grade of zero for that module.
- Verification: Teaching staff reserve the right to audit tracker data against commit timestamps and variance analysis.