from datetime import datetime from fastapi import FastAPI from fastapi.responses import HTMLResponse from database import AttendanceDatabase app = FastAPI(title="Advanced Attendance API") db = AttendanceDatabase() @app.get("/", response_class=HTMLResponse) def dashboard(): return """ Attendance Dashboard

Attendance Dashboard

Students
0
Face Embeddings
0
Present Today
0

Recent Attendance

NameDateTimeDistanceStatus
No attendance records yet.
""" @app.get("/api/summary") def summary(): today = datetime.now().strftime("%Y-%m-%d") students = db.list_students() attendance = db.list_attendance(date=today, limit=500) return { "today": today, "students": len(students), "embeddings": sum(item["embedding_count"] for item in students), "present_today": len(attendance), } @app.get("/api/students") def students(): return db.list_students() @app.get("/api/attendance") def attendance(date: str | None = None, limit: int = 200): return db.list_attendance(date=date, limit=limit) @app.get("/api/alerts") def alerts(limit: int = 100): return db.list_alerts(limit=limit)