Alice – Technical Journal (10/02)
Today was about turning detection into accountability, and tightening the contract between data, time, and responsibility.
What I worked on
I continued deep work on Admin > Insights > Teachers Ranking, specifically the Attendance Marking Compliancefeature.
The core decisions today were not UI tweaks — they were about where truth lives and when it is allowed to exist.
Key things completed / clarified:
- Attendance Marking Compliance is now strictly DB-backed
- Insights no longer compute anything live from schedules or attendance tables.
- The page only reads from data generated by scheduled commands.
- If there is no report (e.g. before 21:30), the system must say so clearly.
- Single source of truth for detection logic
- The 21:30 command defines what “missing attendance” means.
- Insights merely display and aggregate that result.
- No silent recalculation, no divergence.
- Time correctness
- Only past sessions are eligible.
- Future or ongoing schedules are explicitly excluded.
- “Today” is a moving window bounded by real session end times, not calendar assumptions.
- Insights inclusion respected
- Teachers excluded from Insights are excluded everywhere:
- ranking
- compliance
- summaries
- No hidden leakage of excluded staff into metrics.
- Teachers excluded from Insights are excluded everywhere:
- Schedule assistants are first-class citizens
- Assistants are treated as responsible teachers for attendance.
- Accountability reflects reality, not hierarchy.
- Compliance UI cleaned up
- Drilldown formatting redesigned to be human-readable:
dd/mm
- Class name (start -> end): student list
- Removed noise (schedule IDs, raw student IDs, duplicated counts).
- Focus shifted from “system output” to “admin comprehension”.
- Two-stage automation introduced
- 21:01 job:
- Uses the same detection logic.
- Creates actionable tasks/reminders for teachers if missing marking exists.
- 21:30 job:
- Persists the compliance report for Insights.
- This creates a clear flow:
- Remind first → Report later.
- 21:01 job:
- Task creation is deterministic
- Idempotent keys prevent duplicates.
- Tasks can be resolved automatically when attendance is fixed.
- No spam, no ambiguity.
What I learned / reinforced
- Insights must never compute truth
- The moment Insights calculate instead of display, trust is lost.
- Scheduled commands are where truth is frozen.
- Time is a domain concept, not a filter
- “Past session” is not date <= today.
- It is session_end <= now, with timezone discipline.
- Accountability beats completeness
- Including assistants may increase numbers, but it increases honesty.
- Metrics should reflect responsibility, not comfort.
- Two clocks are better than one
- A reminder clock (21:01) changes behavior.
- A reporting clock (21:30) preserves evidence.
- Mixing them would blur intent.
- Good formatting is not cosmetic
- Messy drilldowns hide insight.
- Clean structure turns data into decisions.
Overall
Today’s work pushed Alice further from a “dashboard app” into a governance system:
- Detect → Remind → Record → Explain
- No silent logic
- No mixed responsibilities
- No surprises
The system is becoming calmer, stricter, and more trustworthy — which is exactly what an admin system should feel like.
