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
Recent Attendance
| Name | Date | Time | Distance | Status |
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)