Welcome to CheckMeIN! 👋 This is a lightweight and powerful attendance-tracking system that runs entirely as a Python file.
It was built as a Foundation in Programming project at Swinburne Sarawak and is perfect for learning about data persistence (using CSVs), user roles, and modular programming.
-
A robust, command-line interface for all operations.
-
Add, edit, and remove students and classes.
-
Take attendance directly from your terminal.
-
Saves all data to .csv files.
-
A full-featured Graphical User Interface (GUI) for a user-friendly experience.
-
All the features of V1, but now with buttons, forms, and visual feedback!
-
Easily manage your database without touching the command line.
-
Added service layer
services.pyto handle logic. -
Added data visualization.
-
Added Excel export capabilities.
-
Added advanced management features for admin.
The all-powerful administrator who sets up the system.
- ➕ Add New Students: Register new students with a username and password.
- ➕ Add New Lecturers: Register new lecturers to the system.
- ➕ Create New Classes: Build the class catalog for everyone.
- 👀 Data Overview: View real-time lists of all users and classes.
- 🗑️ Maintenance: Delete specific users or classes directly from the UI.
The "eyes" of the operation.
- 👀 View Class Roster: Select any class to see a full attendance report.
- 📊 Formatted Table: See who's "Present" and who's "Absent" in a clean, beautiful table format.
- 💻 Data Visualization: Generate and view a 14-day Attendance Trend Graph (Line Chart).
- 📤 Export Data: Export class attendance statistics to Excel (.xlsx).
The most important user!
- ✋ Mark Attendance: Students can log in, pick a class, and mark themselves as 'Present'.
- ✅ Prevents Double-Marking: The system is smart! It won't let a student mark attendance more than once.
- 📤 Personal History: Export personal attendance history to Excel (.xlsx).
Getting started is as easy as 1-2-3!
- Download the ZIP or clone the repository:
git clone https://github.com/byliew07/CheckMeIN.git
- Make sure you have Python 3 installed.
- Run the
main_gui.pyfile from your terminal:
python main_gui.py
That's it! The very first time you run it, the program will automatically generate three new files for you to store all your data:
users.csv🧑🤝🧑classes.csv📚attendance.csv📈
All data is persisted in the data/ folder.
This project is split into three clean modules to keep things organized:
main_gui.py: The heart of the program! ❤️ This file handles the main login logic, loads all the interface and data at startup, and directs users to the correct menu.database.py: The "brains" 🧠 behind the data. This module contains all the functions for reading from and writing to the.csvfiles.services.py: The "CPU" 🖥️ of the program. This service layer processes data, handles plotting (matplotlib), and export logic (openpyxl/.csv). It is heavily used by main_gui.py.
- A Functionable Computer 💻
- Python 3 🐍
- Python
csvModule (built-in) 🗃️ - Python
tkinterModule (for the v2.0 GUI) 🖥️ - Python
openpyxlModule (for Excel formatting) 📈 - Python
matplotlibModule (for graphs) 📊 - Python
pandasModule (for CSV-to-Excel conversion) ➡️
Run the following command to install dependencies:
pip install matplotlib openpyxl pandas
This was a fun project! Feel free to fork it, improve it, or suggest new features. Pull requests are always welcome!