Skip to main content

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 Name
  • University ID
  • Course Code
  • Course Time
  • Doctor/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 Timestamp and Email are not required. The tool does not expect or require a timestamp column. The University Email column 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.

Metadata

Release files for attendance-tool-msp 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for attendance-tool-msp 1.0.3
File Size Uploaded
attendance_tool_msp-1.0.3.tar.gz 222.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for attendance-tool-msp 1.0.3
File Interpreter ABI Platform
attendance_tool_msp-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 446.6 kB

Release files / attendance_tool_msp-1.0.3.tar.gz

Download URL attendance_tool_msp-1.0.3.tar.gz
Size 222.8 kB
Tags Source
SHA-256 checksum
How to use checksums
372b14509339573ba407d74dc6766457c9f1324d1afc13cf2d240d299b76e142
BLAKE2b-256 checksum
How to use checksums
a9a72e874ea31089a536025cf24d6d8e57c0aa50561098af64392824a46ec5c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.6

Release files / attendance_tool_msp-1.0.3-py3-none-any.whl

Download URL attendance_tool_msp-1.0.3-py3-none-any.whl
Size 223.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2ba2967c51cdfb5cf5d0ce92d75918aca11a2a78e0041b67fd27432bbf464e16
BLAKE2b-256 checksum
How to use checksums
399a14a89b7e4fc3c4ea7c7581c1bec57e9856c1c6c94b4eef6597a3b8f04dba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.6

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page