Automated attendance processing and reporting tool for MSP technical sessions.
Project description
Attendance Tool - MSP
An easy-to-use Python package for automated attendance processing, validation, and professional report generation. Built mainly for Microsoft Student Partners Tech Club (MSP), but works for any technical session or event at Misr International University (MIU).
This package is heavily tested with pytest and clearly documented on Read the Docs. For more details, including example datasets and the full development journey, check out the repository.
Features
- CSV Attendance Processing: Validate and process attendance sheets with robust error handling.
- Data Validation: Detects invalid records, missing fields, and edge cases.
- Report Generation: Export formatted attendance reports to Word and PDF.
- Modern GUI: Interactive, user-friendly interface built with CustomTkinter.
- Command-Line Support: Flexible CLI for batch processing and automation.
- Extensible API: Easily integrate into other Python projects.
Installation
pip install attendance-tool-msp
Usage
CSV Format Requirements
Your CSV file must contain the following columns (headers):
Full NameUniversity IDCourse CodeCourse TimeDoctor/TA Name
These columns are required for successful processing. If any are missing or empty, the tool will raise an error and the file will not be processed.
Note: Columns like
TimestampandUniversity Emailcolumn is only validated if present, but is not mandatory.
Core Workflow: Processor + Exporter
Use Processor and Exporter together to process attendance data and generate reports:
from attendance_tool_msp import Processor, Exporter
processor = Processor("data.csv")
valid_rows, invalid_rows = processor.process()
exporter = Exporter(valid_rows, invalid_rows, title="Session Report")
filename_word = exporter.export_word()
filename_pdf = exporter.export_pdf()
Simple GUI Launch
If you prefer not to handle arguments or workflow, just launch the GUI with a single line:
from attendance_tool_msp import launch_gui
launch_gui()
Command-Line Integration
For CLI usage, use the argument parser helpers:
from attendance_tool_msp import initialize_parser, validate_arguments
parser = initialize_parser()
args = parser.parse_args()
mode = validate_arguments(parser, args)
# Use mode to determine workflow (see documentation for details)
Requirements
- Python 3.10+
- python-docx
- docx2pdf
- validators
- customtkinter
- pillow
Documentation & Repository
MIT License
For the most up-to-date license and project details, visit the GitHub LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file attendance_tool_msp-1.0.3.tar.gz.
File metadata
- Download URL: attendance_tool_msp-1.0.3.tar.gz
- Upload date:
- Size: 222.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
372b14509339573ba407d74dc6766457c9f1324d1afc13cf2d240d299b76e142
|
|
| MD5 |
370b5b26fe06829e851ed855f5e80ee7
|
|
| BLAKE2b-256 |
a9a72e874ea31089a536025cf24d6d8e57c0aa50561098af64392824a46ec5c2
|
File details
Details for the file attendance_tool_msp-1.0.3-py3-none-any.whl.
File metadata
- Download URL: attendance_tool_msp-1.0.3-py3-none-any.whl
- Upload date:
- Size: 223.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ba2967c51cdfb5cf5d0ce92d75918aca11a2a78e0041b67fd27432bbf464e16
|
|
| MD5 |
1847531cbe825f1028f387c533d56433
|
|
| BLAKE2b-256 |
399a14a89b7e4fc3c4ea7c7581c1bec57e9856c1c6c94b4eef6597a3b8f04dba
|