Add demo-04: signature list generator with code cleanup task

This commit is contained in:
Benjamin Hackl 2026-01-15 23:02:09 +01:00
commit caed60a2d9
5 changed files with 405 additions and 0 deletions

49
demo-04/README.md Normal file
View file

@ -0,0 +1,49 @@
# Demo 04: Signature List Generator - Code Cleanup
## Purpose
This is a static web application that turns student lists exported from UNIGRAZonline / CAMPUSonline (as "CSV for Excel") into nicely formatted signature lists for checking attendance. Everything happens locally in the browser - no sensitive data is transmitted anywhere.
**Features:**
- Upload CSV student lists exported from UNIGRAZonline
- Filter by group name (manually entered or extracted from file)
- Customizable course name and date
- Include/exclude Uni Graz logo
- Print-ready signature lists
- Privacy-first: all processing happens client-side
## Technology Stack
- **Frontend:** Pure HTML5, CSS3, and vanilla JavaScript
- **Styling:** Bootstrap 5.0.2 (via CDN)
- **CSV Parsing:** PapaParse 5.4.1 (via CDN)
- **Fonts:** Nunito Sans (Uni Graz corporate font)
## Task: Code Cleanup
This codebase needs cleanup and modernization. Your goal is to iteratively improve the codebase by:
1. **Fixing bugs and issues** (syntax errors, missing semicolons, etc.)
2. **Modernizing JavaScript** (replace `var` with `const`/`let`, use modern patterns)
3. **Adding error handling** (invalid CSV, missing columns, edge cases)
4. **Improving accessibility** (ARIA labels, keyboard navigation)
5. **Code quality improvements** (consistent styling, remove duplication, better structure)
## Process
Work with the agent to identify issues and iteratively improve the code. For each change:
- Explain what you're fixing and why
- Get the agent's approval before making changes
- Test the changes to ensure nothing breaks
- Document your changes in a CHANGES.md file
## Files
- `index.html` - Main HTML structure
- `main.css` - Styling and print styles
- `main.js` - Application logic
- `logo.png` - Uni Graz logo
## Deployment
This is a static site - simply upload all files to a web server. No build process or backend required.