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.3.tar.gz (222.8 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.3-py3-none-any.whl (223.8 kB view details)

Uploaded Python 3

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

Hashes for attendance_tool_msp-1.0.3.tar.gz
Algorithm Hash digest
SHA256 372b14509339573ba407d74dc6766457c9f1324d1afc13cf2d240d299b76e142
MD5 370b5b26fe06829e851ed855f5e80ee7
BLAKE2b-256 a9a72e874ea31089a536025cf24d6d8e57c0aa50561098af64392824a46ec5c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for attendance_tool_msp-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2ba2967c51cdfb5cf5d0ce92d75918aca11a2a78e0041b67fd27432bbf464e16
MD5 1847531cbe825f1028f387c533d56433
BLAKE2b-256 399a14a89b7e4fc3c4ea7c7581c1bec57e9856c1c6c94b4eef6597a3b8f04dba

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