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

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 (optional, for PDF export)
  • 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.0.tar.gz (222.6 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.0-py3-none-any.whl (223.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for attendance_tool_msp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7449cf89929575045a9f3a2d1d00fdd47d52ada930d457f052bde487e918e6ef
MD5 d6b73df1c42af1c7bc574d4fe778d3b1
BLAKE2b-256 8888951bdf73dcb8dce524cd4f42fd364a5b2bbfd925b055320136795ff2e9e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for attendance_tool_msp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e74667791096917f3ac617547a09c80f98eba9f65a0dfb483e93310274f8314c
MD5 5378f96ce4821fc50e97637961684c88
BLAKE2b-256 4aabe7d8cfc875bbe0d1f7f1f2d44c4dcbd37c3003019ea2938c3908c2945484

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