Skip to content
Back to projects

Academic Operations

Attendance Management System

Teacher-facing attendance tracking with automated WhatsApp reporting to parents.

Deployed — 2025Solo build — end to end
ReactNode.jsMongoDBWhatsApp API

Overview

Problem

Teachers recorded attendance on paper or disconnected spreadsheets, and parents only found out about absences if a teacher followed up individually.

Solution

A fast teacher dashboard for marking daily attendance that automatically sends a WhatsApp report to parents, so communication happens by default.

Architecture

Client

React teacher dashboard for daily class attendance entry.

API

Node.js/Express backend handling records and report triggers.

Messaging

WhatsApp Business API sending automated reports to parents.

Data

MongoDB storing attendance records per class, per day.

Feature Breakdown

  • Daily attendance entry built for speed during a live classroom session
  • Automatic WhatsApp report to parents on marked absence
  • Historical attendance reporting per student and per class

Implementation Detail

Async report dispatch after attendance is saved
async function markAttendance(classId: string, entries: AttendanceEntry[]) {
  await db.attendance.insertMany(entries);
  const absentees = entries.filter((e) => e.status === "absent");
  reportQueue.enqueue(absentees.map((e) => ({ studentId: e.studentId, classId })));
  return { saved: entries.length };
}

Challenge & Solution

Attendance marking needed to stay fast during a live class, without blocking on a WhatsApp API call.

Built a keyboard-friendly marking UI with an async report queue, so attendance saves instantly and messages send in the background.

Results

  • Parents get a same-day absence notification by default.
  • A full term of attendance is now one queryable record instead of paper registers.