Tuesday, October 20, 2026 New tutorials published every day
Home
Tutorials
Core PHP PHP Course JavaScript React & Next.js Python WordPress Artificial Intelligence
Free Tools
JSON Formatter Base64 Encoder / Decoder Password Generator Text to QR Code Generator Word Counter Case Converter Age Calculator Color Converter Number to Words All Free Tools
Projects
PHP Projects — all projects
Resources
Search tutorials About CodingCush Contact
More
Login
Final Year Projects

Attendance Management System in PHP and MySQL — Final Year Project with Source Code

A complete Attendance Management System in PHP and MySQL for final year students — synopsis, modules, database design, running steps, report and PPT.

An Attendance Management System in PHP and MySQL is a web application that lets teachers mark student attendance online in under a minute, instead of passing a paper register around the classroom. It is a strong final year project for BCA, MCA, B.Tech and M.Tech students: a real daily problem, a clean database design, and a demo that takes one minute in the viva. On this page you will find the complete synopsis, the admin, teacher and student modules, the database tables with SQL, and the steps to run it on XAMPP.

Project Synopsis

Every college classroom still begins the same way: the teacher opens a thick register, calls out roll numbers one by one, and ten valuable minutes quietly disappear. At month end, someone sits with that register and a calculator to work out each student's percentage — a slow job where one small mistake can start a big argument.

Then there is the famous proxy attendance problem — a student at home, a friend whispering "present, sir" at the right moment, and the register never catches it.

This project replaces the paper register with a web application. The admin manages classes, subjects, students and teachers. Teachers log in and mark the whole class Present, Absent or Late from one screen. Every record is stored date-wise and percentages are calculated automatically. Students can check their own attendance any time — no more crowding around the notice board asking why their percentage is 74.6 instead of 75.

Why This Project Scores Well in Final Year

Attendance is every teacher's daily pain, and your examiners are teachers. They understand the problem in the first ten seconds of your demo — half your explanation is done before you open your laptop.

The project also shows the right mix of skills. Its core is a well-organised CRUD app in PHP and MySQL — add, view, edit and delete records — with date-based queries, percentage calculations and reports on top. Reports are where average projects become good ones: a defaulter list proves your system does something useful with its data.

The live demo is short and sweet: log in as a teacher, mark a class, open the report, and show one student's percentage change instantly. The viva questions stay predictable too — how the percentage is calculated, and how duplicate marking for the same day is stopped.

Illustration of a teacher marking an attendance register in a classroom
One screen, one minute — the whole class marked present, absent or late.

Modules of the Project

The system has three roles: the admin sets everything up, teachers do the daily marking, and students get a read-only view of their own records.

Admin Module

  • Dashboard: total classes, subjects, students and teachers, plus today's attendance summary.
  • Manage Classes and Subjects: add classes like BCA Semester 5 and the subjects taught in each.
  • Add Students and Teachers: register students with roll numbers, and create teacher accounts with their subjects.
  • View Reports: class-wise, subject-wise and date-wise reports for the whole institute.

Teacher Module

  • Take Attendance: select class, subject and date, then mark every student Present, Absent or Late on one screen.
  • Edit Same-Day Records: correct a wrong entry the same day — for example, a student marked absent who walked in late.
  • View Defaulter List: students whose attendance has dropped below the required percentage in your subject.
  • My Class Reports: date-wise and subject-wise summaries for your own classes.

Students get the simplest part: log in, view their own attendance percentage (overall and subject-wise) and the dates they were absent. They cannot change anything.

Main Features

Feature What It Does
One-Screen Marking The whole class appears in one list with Present, Absent and Late options — marking takes under a minute.
Automatic Percentage Percentage is calculated instantly from stored records — no manual counting at month end.
75% Defaulter List Students below the 75% minimum are listed automatically, so teachers can warn them in time.
Date-Wise Reports Attendance for any day, week or month, for any class.
Subject-Wise Reports Attendance per subject — how most colleges actually check exam eligibility.
Duplicate Protection A class cannot be marked twice for the same subject and date — the existing record opens for editing instead.
Role-Based Login Separate logins for admin, teacher and student.

Technology Stack

Layer Technology
Backend PHP 8.x
Database MySQL
Frontend HTML, CSS and JavaScript
UI Framework Bootstrap
Local Server XAMPP (Apache + MySQL)
Database Tool phpMyAdmin

The stack is simple and free, so the project runs on any college lab computer. Two skills carry the whole build: forms with validation, and knowing how to connect PHP with MySQL properly. For queries, use PHP Data Objects (PDO) with prepared statements — it keeps the forms safe from SQL injection, and it is the answer examiners want to hear when they ask about security.

Database Tables

Four tables run the complete system: classes and subjects describe the structure, students holds the people, and attendance stores one row per student per session.

Table Purpose
classes Stores class and course names, such as BCA Semester 5 or MCA Semester 3.
subjects Stores subjects with their class, subject code and the teacher who teaches them.
students Stores student details — roll number, name, class and login information.
attendance Stores one record per student per session: class, subject, date and Present/Absent/Late status.

Here is the SQL for the attendance table, which is the heart of the system. If your examiner asks about any column option, the official MySQL CREATE TABLE documentation explains them all clearly.

CREATE TABLE attendance (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT NOT NULL,
    class_id INT NOT NULL,
    subject_id INT NOT NULL,
    att_date DATE NOT NULL,
    status ENUM('Present', 'Absent', 'Late') DEFAULT 'Present',
    FOREIGN KEY (student_id) REFERENCES students(id),
    FOREIGN KEY (class_id) REFERENCES classes(id),
    FOREIGN KEY (subject_id) REFERENCES subjects(id),
    UNIQUE KEY one_mark_per_session (student_id, subject_id, att_date)
);

Notice the unique key: it makes duplicate marking impossible at the database level itself — and answers a very common viva question.

How to Run This Project on XAMPP

  1. Download and install XAMPP, then open the XAMPP Control Panel and start the Apache and MySQL services.
  2. Copy the project folder (attendance-system) into XAMPP's htdocs folder.
  3. Open http://localhost/phpmyadmin in your browser and create a new database named attendance_db.
  4. Select the database, open the Import tab, choose the project's SQL file and click Go.
  5. Open http://localhost/attendance-system in your browser and log in to the admin panel with the demo credentials from the project readme.
  6. Add a class, a subject, a few students and a teacher account, then log in as the teacher and mark your first attendance.

What You Get in the Complete Project

A submission needs much more than an idea. The complete package gives you the full working source code in PHP and MySQL, so you can run it on XAMPP, study it, and customise it with your own college name. You also get a ready project report with the synopsis, requirements, DFD, ER diagram, database design and screenshots, plus a viva PPT covering the problem, modules, tables and future scope. You can get the complete package from the Coding Cush shop. Run it once yourself before demo day, and the viva becomes a conversation instead of an interrogation.

FAQ

How is the attendance percentage calculated?

The system counts the sessions a student attended (Present and Late both count), divides by the total sessions held for that subject, and multiplies by 100. In SQL it is a simple COUNT on the attendance table, grouped by student and subject — always live, never typed by hand.

What is the defaulter list, and why 75%?

Most universities require a minimum of 75% attendance for exam eligibility. The defaulter list is simply every student below that line in a subject. Teachers use it to warn students early, while there is still time to recover — exactly the kind of useful output examiners like to see.

Which viva questions are asked on this project?

Two very common ones. First: "How do you stop attendance being marked twice for the same class and day?" — the unique key on student, subject and date, plus opening the existing record for editing. Second: "How do you calculate a student's percentage for one subject?" — a COUNT query grouped by status. Prepare these two and most of the viva is covered.

Can it send SMS or email alerts to parents later?

Yes — a good future-scope point. Store a parent contact at registration, then add a mail or SMS script that fires when a student's percentage drops below 75%. The date-wise data is already there, so the alert logic needs no database change.

Conclusion

The Attendance Management System is a practical, marks-friendly final-year project: a real everyday problem, one-screen marking, automatic percentages and reports examiners genuinely appreciate. Build it, run it on XAMPP, understand your attendance table — and walk into the demo room with a project that explains itself.

Lavkush
Written by

Lavkush

Lavkush Kumar is a software developer with over 6 years of experience turning ideas into websites and web applications. He holds a Master of Computer Applications (MCA) degree and enjoys building for the web, exploring new tools, and sharing what he learns along the way.

Through CodingCush, Lavkush creates easy-to-follow tutorials and practical guides to help students and beginners learn software development without feeling overwhelmed. His approach is simple: learn by doing, build real projects, and keep improving one step at a time.

Whether you’re just starting out or looking to sharpen your skills, CodingCush is all about making learning practical, beginner-friendly, and fun.

0 Comments

Leave a Comment