Web
SIPPER-TI
Leave-permit and attendance system for the Informatics Engineering international class at UMKT: permits, document verification, and attendance summaries lecturers open without logging in.
Problem
The Informatics Engineering international class at UMKT needs to manage absence permits (illness, personal matters, competition duty): evidence such as a doctor's note or an assignment letter has to be verified, and attendance then summarized for each lecturer.
Approach
I mapped out who does what, then built the system around those roles:
- Students submit a permit with evidence attached (PDF or photo) and track its status.
- The education officer validates the evidence, approves or rejects with a reason, and can submit a permit on behalf of another student.
- The class leader oversees attendance for the whole class and manages the links given to lecturers. Their verification decision is final.
- Lecturers simply open a guest-token link to see the attendance summary, without creating an account.
Solution
- Next.js 16, React 19, TypeScript, with Supabase (PostgreSQL, Auth, Storage) and a built-in demo mode for when Supabase is not configured.
- Row Level Security in the database, tested with its own SQL scripts, so access rules still hold even if the application has a bug.
- Separate navigation for desktop and mobile.
- Testing: Vitest unit tests, Playwright end-to-end tests, and CI on GitHub Actions.