# Student Attendance Tracker
A simple Python-based GUI application to manage and track student attendance. Built with Tkinter, this application allows educators to efficiently handle attendance records, ensuring accurate and organized tracking.
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Manage Students](#manage-students)
- [Mark Attendance](#mark-attendance)
- [View Attendance](#view-attendance)
- [Dependencies](#dependencies)
- [File Structure](#file-structure)
- [Data Persistence](#data-persistence)
- [Input Validation](#input-validation)
- [Extensibility](#extensibility)
- [License](#license)
## Features
- **Manage Students**: Add and view students with unique IDs.
- **Mark Attendance**: Mark students as present or absent for a selected date.
- **View Attendance**: View attendance records by date or by individual student.
- **Data Persistence**: Stores data in CSV files (`students.csv` and `attendance.csv`).
- **User-Friendly GUI**: Intuitive interface built with Tkinter.
- **Input Validation**: Ensures data integrity with checks for duplicate IDs and correct date formats.
## Installation
### Prerequisites
- **Python 3.x**: Ensure Python is installed on your system. Download it from [python.org](https://www.python.org/).
### Steps
1. **Clone the Repository**
Open your terminal or command prompt and execute:
```bash
git clone https://github.com/yasinULLAH/Daily-attendance-tracker-.git
cd student-attendance-tracker
-
Install Dependencies
The application primarily uses standard Python libraries. However, ensure that Tkinter is installed (it usually comes pre-installed with Python).
-
For Windows and macOS: Tkinter is included with the standard Python installation.
-
For Linux: You might need to install it manually.
sudo apt-get install python3-tk
-
-
Verify Installation
Ensure that you have Python installed by checking the version:
python --version
or
python3 --version
Run the application by executing the main script.
python attendance_app.py
-
Navigate to the "Manage Students" Tab
-
Add a New Student
- Enter a unique Student ID and the Student Name.
- Click the "Add Student" button.
- The student will appear in the list below.
-
View Existing Students
The list below the input fields displays all added students with their IDs and names.
-
Navigate to the "Mark Attendance" Tab
-
Enter the Date
- Input the date in
YYYY-MM-DD
format. - The current date is pre-filled by default.
- Input the date in
-
Load Students
- Click the "Load Students" button to display the list of students.
- Existing attendance for the selected date will be loaded if available.
-
Mark Attendance
- Select one or more students from the list.
- Click "Mark Present" or "Mark Absent" to set their status.
-
Save Attendance
- After marking, click "Save Attendance" to record the attendance.
- A confirmation message will appear upon successful saving.
-
Navigate to the "View Attendance" Tab
-
Choose View Option
- View by Date: See all students' attendance for a specific date.
- View by Student: See a particular student's attendance history.
-
View by Date
- Select the "View by Date" radio button.
- Enter the desired date in
YYYY-MM-DD
format. - Click "Load" to display attendance records for that date.
-
View by Student
- Select the "View by Student" radio button.
- Choose a Student ID from the dropdown menu.
- Click "Load" to view the student's attendance history.
- Python 3.x
- Tkinter: For creating the GUI. Included with Python on most platforms.
- CSV: Standard Python library for handling CSV files.
- OS: For file operations.
- Datetime: For handling date functionalities.
student-attendance-tracker/
├── attendance_app.py
├── students.csv
├── attendance.csv
├── README.md
└── screenshots/
├── manage_students.png
├── add_student.png
├── mark_attendance.png
├── mark_save_attendance.png
└── view_options.png
- attendance_app.py: Main application script.
- students.csv: Stores student information (ID and Name).
- attendance.csv: Stores attendance records (Date, Student ID, Status).
- README.md: This readme file.
- screenshots/: Directory containing screenshots of the application (optional for visual guidance).
-
Students Data (
students.csv
):ID Name S001 John Doe S002 Jane Smith ... ... -
Attendance Data (
attendance.csv
):Date Student ID Status 2024-04-25 S001 Present 2024-04-25 S002 Absent ... ... ... -
File Initialization: Upon first run, if
students.csv
orattendance.csv
do not exist, the application creates them with appropriate headers.
- Unique Student IDs: The application checks for duplicate Student IDs to maintain data integrity.
- Date Format: Ensures that dates are entered in the
YYYY-MM-DD
format. - Mandatory Fields: Both Student ID and Name are required when adding a new student.
This basic application can be extended with additional features such as:
- Editing Student Details: Modify existing student information.
- Deleting Students: Remove students from the database.
- Exporting Reports: Generate and export attendance reports in formats like PDF or Excel.
- Authentication: Add user login to secure the application.
- Advanced UI: Enhance the GUI with more sophisticated designs and functionalities.
Feel free to contribute and enhance the application to better suit your needs!
This project is licensed under the MIT License.