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.1.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.1-py3-none-any.whl (223.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: attendance_tool_msp-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 768ed0d320e3ce7ac3c3b4ab4ec53dc1b7fc1497e285566d6ec6926b3f69d2e9
MD5 90d71085b258a8606afbbedaed062120
BLAKE2b-256 3a798f18302228866ec6636e21aed072e15f4d0dec39cef2ce0aba3225e4276b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for attendance_tool_msp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 74d61765d7cc462a6efb19f68aa257759ef56ed1e20d7ca8ccb47462d279b4c2
MD5 c1a000043cfaa6077ca1159734244024
BLAKE2b-256 4229dc7673493f340bfd7ae0016987b95418f457655e7ae0b3b3175dcdf8fa30

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