Skip to main content

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 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.

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

attendance_tool_msp-1.0.2.tar.gz (222.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

attendance_tool_msp-1.0.2-py3-none-any.whl (223.7 kB view details)

Uploaded Python 3

File details

Details for the file attendance_tool_msp-1.0.2.tar.gz.

File metadata

  • Download URL: attendance_tool_msp-1.0.2.tar.gz
  • Upload date:
  • Size: 222.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.6

File hashes

Hashes for attendance_tool_msp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 97cde0941d0cc129954277e881424b085353fb075c0f6ef28347e83fa67fac71
MD5 0f2f9b98d3385e5631851839e6d1f4ad
BLAKE2b-256 4637a506578f822d8b4e8e4f9c1130752e27aab453b12097e22bc887018066fa

See more details on using hashes here.

File details

Details for the file attendance_tool_msp-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for attendance_tool_msp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 858a9c782edbe7bb3470cbf527ad6bcd328af012bfaca3fec2d948dd46e020c0
MD5 de43a755677d3ac7bce55d11a9517432
BLAKE2b-256 072a115727ffed60c42692286f20c572681cd55f4616c94a8c98a8ca8182156c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page