Skip to main content

๐ŸŽ“ Complete UMAT Student Portal Toolkit - API client, automated course assessment bot, CLI interface, and utilities for UMAT students

Project description

๐ŸŽ“ UMAT Kit - Complete Student Portal Toolkit

PyPI version Python 3.10+ License: MIT

UMAT Kit is a comprehensive Python toolkit designed for UMAT (University of Mines and Technology) students to interact with the student portal programmatically. It provides a rich CLI interface, automated course assessment bot, API client, and utilities for seamless student portal management.

โœจ Features

๐Ÿค– Automated Course Assessment Bot

  • Smart Rating System: Automatically rates courses with realistic scores (3-5 range)
  • Bulk Submission: Submit all course assessments at once (matches web interface)
  • Manual Mode: Course-by-course assessment with full control
  • Progress Tracking: Real-time progress indicators and success statistics

๐Ÿ“Š Academic Management

  • Results Viewer: View current and historical academic results
  • GPA Calculator: Automatic GPA and CGPA calculations
  • Transcript Export: Download and export academic transcripts

๐Ÿ’ฐ Financial Management

  • Bills Overview: View outstanding fees and payment history
  • Payment Tracking: Monitor payment status and due dates
  • Fee Breakdown: Detailed breakdown of all charges

๐Ÿ“š Course Management

  • Registration Status: View registered courses and schedules
  • Course Details: Access detailed course information
  • Assessment Progress: Track course assessment completion

๐Ÿ‘ค Profile Management

  • Profile Updates: Update contact information and email
  • Session Management: Secure authentication and session handling
  • Data Export: Export personal and academic data

๐Ÿ–ฅ๏ธ Rich CLI Interface

  • Interactive Menus: Beautiful, intuitive command-line interface
  • Progress Bars: Visual feedback for long-running operations
  • Colored Output: Rich formatting with emojis and colors
  • Error Handling: Graceful error handling with helpful messages

๐Ÿš€ Installation

Install from PyPI (Recommended)

pip install umat-kit

Install from Source

git https://github.com/Odeneho-Calculus/UMaT-Kit.git
cd UMaT-Kit
pip install -e .

๐ŸŽฏ Quick Start

CLI Interface

# Launch the interactive CLI
umat-kli ui

# Direct login
umat-kli login --username your_student_id

# View help
umat-kli --help

Python API

from umat_kit.student_portal import StudentPortal

# Initialize portal
portal = StudentPortal()

# Login
portal.login("your_student_id", "your_password")

# Get academic results
results = portal.get_academic_results()
print(f"Current GPA: {results['current_gpa']}")

# Automated course assessment
portal.automated_course_assessment()

# View bills
bills = portal.get_student_bills()

๐Ÿค– Automated Course Assessment

The standout feature of UMAT Kit is the Automated Course Assessment Bot:

# Quick automated assessment
portal.automated_course_assessment()

What it does:

  • ๐ŸŽฏ Finds all pending course assessments
  • ๐ŸŽฒ Generates realistic random ratings (3-5: Average to Very Good)
  • ๐Ÿ“ Applies optional general comments to all courses
  • ๐Ÿ“ฆ Submits all assessments in one bulk request (matches web interface)
  • ๐Ÿ“Š Provides detailed success statistics

Assessment Flow:

๐Ÿค– Automated Course Assessment
๐Ÿ“š Found 8 pending courses
๐ŸŽฒ Generating random ratings...
๐Ÿ“Š Assessment Summary:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Course  โ”‚ Course Name          โ”‚ Questions โ”‚ Avg Rating  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ CS 101  โ”‚ Programming Basics   โ”‚    21     โ”‚   4.2/5.0   โ”‚
โ”‚ MA 201  โ”‚ Advanced Mathematics โ”‚    21     โ”‚   3.8/5.0   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โœ… All assessments submitted successfully!
๐Ÿ“ˆ Success Rate: 100% (8/8 courses)

๐Ÿ“‹ Available Commands

CLI Commands

# Authentication
umat-kli login                    # Interactive login
umat-kli logout                   # Logout current session

# Academic
umat-kli results                  # View academic results
umat-kli courses                  # View registered courses

# Assessment
umat-kli assess                   # Launch course assessment
umat-kli assess --auto            # Automated assessment
umat-kli assess --manual          # Manual assessment

# Financial
umat-kli bills                    # View bills and payments

# Profile
umat-kli profile                  # View/update profile
umat-kli profile --update-email   # Update email address

# Utilities
umat-kli export --results         # Export academic results
umat-kli export --bills           # Export financial data

๐Ÿ”ง Configuration

Environment Variables

Create a .env file in your project directory:

# Optional: Auto-login credentials
UMAT_USERNAME=your_student_id
UMAT_PASSWORD=your_password

# Optional: API Configuration
UMAT_API_TIMEOUT=30
UMAT_MAX_RETRIES=3

Configuration File

# config.py
UMAT_CONFIG = {
    'api_base_url': 'https://student.umat.edu.gh/api',
    'timeout': 30,
    'max_retries': 3,
    'auto_assessment_range': (3, 5),  # Rating range for auto assessment
}

๐Ÿ›ก๏ธ Security Features

  • ๐Ÿ” Secure Authentication: Encrypted credential storage
  • ๐Ÿ”’ Session Management: Automatic session timeout and renewal
  • ๐Ÿ›ก๏ธ Data Protection: Secure handling of sensitive student data
  • ๐Ÿšซ Rate Limiting: Built-in API rate limiting to prevent abuse

๐Ÿ“Š API Reference

StudentPortal Class

class StudentPortal:
    def login(username: str, password: str) -> bool
    def get_academic_results() -> Dict[str, Any]
    def get_student_bills() -> Dict[str, Any]
    def get_registered_courses() -> Dict[str, Any]
    def automated_course_assessment(comment: str = "") -> Dict[str, Any]
    def manual_course_assessment() -> None
    def update_profile(data: Dict[str, Any]) -> bool
    def export_data(data_type: str, format: str = "json") -> str

API Manager

class APIManager:
    def submit_all_course_assessments(assessments: List[Dict], remarks: str) -> Dict
    def get_course_assessments() -> Dict[str, Any]
    def get_academic_results() -> Dict[str, Any]
    def get_student_bills() -> Dict[str, Any]

๐ŸŽจ Examples

Automated Assessment with Custom Comments

from umat_kit.student_portal import StudentPortal

portal = StudentPortal()
portal.login("your_id", "your_password")

# Automated assessment with custom comment
result = portal.automated_course_assessment(
    comment="Great semester! Learned a lot from all courses."
)

print(f"โœ… Assessed {result['courses_submitted']} courses")
print(f"๐Ÿ“Š Success Rate: {result['success_rate']}%")

Export Academic Data

# Export results to JSON
results_file = portal.export_data("results", format="json")
print(f"Results exported to: {results_file}")

# Export bills to CSV
bills_file = portal.export_data("bills", format="csv")
print(f"Bills exported to: {bills_file}")

Batch Operations

# Check multiple students (if you have admin access)
students = ["student1", "student2", "student3"]
for student_id in students:
    portal.login(student_id, get_password(student_id))
    portal.automated_course_assessment()
    portal.logout()

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

git clone https://github.com/Odeneho-Calculus/UMaT-Kit.git
cd UMaT-Kit
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -e ".[dev]"

Running Tests

pytest tests/

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support

๐ŸŽฏ Roadmap

  • Mobile App Integration: React Native/Flutter companion app
  • Telegram Bot: Interactive Telegram bot interface
  • Web Dashboard: Web-based dashboard for portal management
  • Notification System: Email/SMS notifications for important updates
  • Analytics: Advanced analytics and reporting features
  • Multi-University Support: Extend support to other universities

โญ Star History

Star History Chart


Made with โค๏ธ for UMAT students by students

Simplifying student life, one API call at a time. ๐Ÿš€

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

umat_kit-0.1.3.tar.gz (98.9 kB view details)

Uploaded Source

Built Distribution

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

umat_kit-0.1.3-py3-none-any.whl (109.0 kB view details)

Uploaded Python 3

File details

Details for the file umat_kit-0.1.3.tar.gz.

File metadata

  • Download URL: umat_kit-0.1.3.tar.gz
  • Upload date:
  • Size: 98.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for umat_kit-0.1.3.tar.gz
Algorithm Hash digest
SHA256 15a13fc182092b88b63c0b8ecb272fdfd513370e7f78703478c5dea0e415933a
MD5 681e55f9e42507c3111dc5c22c6f98c1
BLAKE2b-256 ea827edb11b87e1f59ff2128b7241e730070cc7c4d63a929e84ebbea6ad4ee5d

See more details on using hashes here.

File details

Details for the file umat_kit-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: umat_kit-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 109.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for umat_kit-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 635e330920872d7ac90cc2a0609e3a3496e2591d09807bcfe15178f401004cda
MD5 5648d8f1eeb0160b228350927539343e
BLAKE2b-256 5d6f09725bae22f9c2e010e55d588cd37d58c9b8c8214364dd0394a575df1d4c

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