Back to Projects

Student Attendance Management System

FlutterFirebase
Architecture: Client–ServerPlatform: Mobile

A comprehensive mobile application designed to digitize and streamline the student attendance process at RUET's CSE department. The system replaces manual roll-call with real-time digital tracking, allowing teachers to mark attendance records, track statistical data on course attendance, generate visual attendance summary charts, and export attendance data in CSV and PDF formats. Built under the guidance of Prof. Dr. Boshir Ahmed for the CSE-22 Series at RUET, the system leverages Firebase Authentication for secure login management and Cloud Firestore as a real-time NoSQL database for storing all attendance records and student data.

Architecture

System Design

The system follows a client-server architecture where the Flutter mobile client handles the entire UI layer and communicates with Firebase backend services. Firebase Authentication manages user identity and secure login. Cloud Firestore serves as the primary data store, providing real-time synchronization of attendance records across devices. Local storage via shared_preferences supports offline functionality. The application includes export capabilities using PDF and Excel libraries for generating attendance reports.

System Design

Architecture Deep Dive

System Components

The system consists of five core components: the Flutter Mobile Client used by teachers to record attendance and interact with the system; Firebase Authentication which handles secure login and user identity management; Cloud Firestore Database which stores attendance records and student data in real-time; the Application Logic Layer which handles attendance submission, validation, statistical computation, and synchronization; and the Teacher Interface which provides the user-facing dashboard for viewing attendance data, charts, and managing course records.

Data Flow

The teacher opens the mobile application and authenticates through Firebase Authentication. After login, the teacher selects a course and student list. Attendance status is recorded for each student through the interface. The attendance data is written to Cloud Firestore, where it synchronizes in real time across all connected devices. Teachers can then view statistical summaries and export attendance reports as PDF or CSV files.

Scalability Considerations

Firebase provides serverless infrastructure that eliminates the need for manual server provisioning. Backend services scale automatically based on demand without configuration. Real-time synchronization works seamlessly across multiple concurrent clients. Firebase's global cloud infrastructure ensures availability and low-latency access regardless of geographic location, supporting future multi-department expansion.

Reliability Considerations

The system ensures reliable data storage through Firebase's cloud-based persistent database with automatic replication. Secure authentication via Firebase Auth prevents unauthorized access. Google-managed infrastructure provides high uptime guarantees. Fault-tolerant cloud services handle failover transparently, and Firestore's offline persistence ensures data is never lost even when network connectivity is interrupted.

Engineering Insights

Decisions & Learnings

Problem

Manual attendance tracking is inefficient and error-prone. Teachers had no streamlined way to record, analyze, or export attendance data, making it difficult to identify students with low attendance until it was too late.

Solution

Build a mobile application that allows teachers to record and manage student attendance digitally. Teachers can mark attendance for an entire class in seconds, view statistical summaries, generate visual charts, and export data as CSV or PDF reports.

Architecture Decisions

Use Flutter for cross-platform development and Firebase for real-time backend services. Chose Firebase over a custom backend to minimize infrastructure management and leverage real-time sync out of the box. Used Firestore's document model to structure attendance as nested collections under courses, enabling efficient queries by date, student, or course.

Technical Challenges

Handling real-time synchronization and ensuring reliable data storage across devices. Implementing Firestore's offline persistence with conflict resolution and designing security rules to enforce role-based access while keeping queries performant were significant challenges.