In my school, keeping track of student attendance has always been done the old-fashioned way — on paper. At first, it might seem like a simple process, but over time, I began to notice just how many problems this method caused.
Discovering the Problem
Every class, the lecturer walks in with a sheet of paper, passes it around for students to write their names, and that’s it. But what happens when that paper gets lost? Or when a lecturer wants to check attendance records from previous weeks but forgot the sheet at home? It’s frustrating, unreliable, and inefficient.
Even worse, if a student’s name wasn’t marked properly, it could mean problems at the end of the semester. And since attendance often counts toward final grades, that’s a big deal.
I saw this happen over and over again, and that’s when it hit me:
Why not build a digital attendance system that works online, stores data permanently, and gives lecturers and students access anytime?
Turning a Problem into a Project
I’ve always been passionate about solving real-world problems with code. Even though this system isn’t officially used by my school (yet), I took it as a personal challenge. I wanted to prove that I could create something practical — something that makes life easier.
This was what pushed me to build the system. I didn’t wait for approval or for someone to tell me to start. I just thought, “What if I tried to build something better?” Even if it never gets officially used in my school, I wanted to try. I wanted to solve the problem in my own way and learn from it.
That’s how Attendify was born — an online school attendance management system that brings a simple, secure, and smart way of tracking attendance.
How the System Works
For Admins:
Admins can add students and lecturers to the platform.
Only Admins and Lecturers can access the dashboard.
When a new lecturer is created, they get an email with a default password to log in.
Creating Attendance:
The Admin must first create an active academic session.
Then, the Admin selects the course, session, semester, and student level.
The system automatically gathers the students in that level and prepares the attendance list.
Marking Attendance:
Lecturers activate the attendance session before marking.
Once active, they can mark which students are present.
Attendance performance is tracked and calculated.
Attendance records can be downloaded as a PDF or Word document for offline use.
Benefits
This system solves the problems we used to face with paper attendance:
No More Lost Sheets: All attendance data is stored securely in the cloud.
Easy Access: Lecturers and students can view records from anywhere.
Real-Time Monitoring: Heads of departments can check records without having to call lecturers.
Semester Reports: Lecturers can generate downloadable reports instantly.
Features I Implemented
This wasn’t just a small project. I wanted to build something practical, so I implemented a wide range of features:
User Authentication and Authorization – Only authorized users can access certain parts of the system.
User/Student Management – Admin can manage users, assign roles, and update student information.
Session & Course Management – Admin sets up academic sessions, semesters, levels, and courses.
Attendance Management – Lecturers can create and manage attendance sessions in real-time.
Activity Logs – The system keeps track of key actions, helping with accountability.
Analytics Dashboard – Visual representations of attendance data for better insights.
This setup gives users full control over the academic attendance process while solving the main pain points we’ve faced for years.
Tech Stack I Used
Backend:
Node.js with Express.js
MongoDB
TypeScript
JWT (for authentication)
Nodemailer (to send login emails)
Swagger UI (for API documentation)
bcrypt.js (to hash passwords)
Frontend:
React + TypeScript
Tailwind CSS (for clean and modern styling)
Zustand (for global state management)
React Toastify (for showing user notifications)
shadcn/ui (for ready-made UI components)
jsPDF & jsAutoTable (for generating attendance PDFs)
zod (for form validation)
React Router Dom (for page routing)
Recharts (for data visualization)
Try It Yourself
I’ve made the platform open for testing, so you can explore how it works:
Live Demo: https://attendified.vercel.app/
Backend Code: GitHub Backend Repo
Frontend Code: GitHub Frontend Repo
There’s a temporary signup page available so you can create a test account and see the system in action.
Special Thanks
A huge shoutout to MBA Vitus, who designed the user interface. His design work brought this project to life visually, and working together reminded me that great things happen when people collaborate.
💡 What I Learned
Solving problems is the best way to grow as a developer. Even if no one asks you to build it, do it anyway.
Real-life problems are everywhere. If you look around, you’ll find something that could be improved with code.
Collaboration makes everything better. Working with others brings new perspectives and energy.
You don’t need permission to innovate. If you see a problem, take the lead and solve it.
Thanks for reading my journey! I hope it inspires you to tackle a problem you’ve noticed in your own environment. It doesn’t have to be big — just start, build, and learn.
Have feedback or want to share what you're building? Hit reply and let's connect.
Until next time,
– Desmond Nzubechukwu
“Transforming ideas into reality through technology.”
Really nice share! It’s through these journeys that you start to figure out what you like, what you’re good at (or not), and become more intentional with your path in tech.