Skip to content

An unofficial, modern command-line interface (CLI) for accessing academic data from the PESU Academy website. This tool is built with a fast, asynchronous architecture to provide a clean and efficient way to view your academic information directly from the terminal.

License

Notifications You must be signed in to change notification settings

8figalltimepro/PESU-Academy-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PESU Academy CLI Client

Python Version License: MIT

An unofficial, modern command-line interface (CLI) for accessing academic data from the PESU Academy website. This tool is built with a fast, asynchronous architecture to provide a clean and efficient way to view your academic information directly from the terminal.

✨ Features

  • Profile: View your detailed personal and parental information.
  • Courses: List all registered courses for any semester.
  • Attendance: Check your attendance records.
  • Results: Fetch and display your final ESA results in a clean, horizontal layout.
  • Announcements: Scrape and display the latest official announcements.
  • Seating Info: Check your upcoming exam seating arrangements.
  • Interactive Materials Downloader: A guided, interactive menu to navigate through semesters, subjects, and units to scrape and save all relevant material links to a CSV file.

🛠️ Architecture & Tech Stack

This client is built with a modern, maintainable architecture designed for performance and reliability.

  • Asynchronous Core: Uses asyncio and httpx to perform multiple network requests concurrently, making features like the materials downloader incredibly fast.
  • Robust Data Handling: Leverages Pydantic for strict data modeling and validation, ensuring that the scraped data is always consistent and preventing errors from unexpected website changes.
  • Clean Separation of Concerns: The project is organized into distinct layers:
    • models/: Pydantic data blueprints.
    • pages/: Specialized, single-responsibility scraper modules.
    • client.py: The central orchestrator that manages the session.
    • main.py: The user interface layer.
  • Professional CLI Experience:
    • Typer for a powerful and structured command system with automatic help menus.
    • Rich for beautifully formatted output (tables, panels, colors).
    • Questionary for a user-friendly interactive menu system.

🚀 Getting Started

Prerequisites

  • Python 3.8 or higher

Installation

  1. Clone the repository:

    git clone https://github.com/8figalltimepro/PESU-Academy-CLI.git
    cd PESU-Academy-CLI
  2. Create and activate a virtual environment:

    • macOS / Linux:
      python3 -m venv venv
      source venv/bin/activate
    • Windows:
      python -m venv venv
      .\venv\Scripts\activate
  3. Install the required dependencies:

    pip install -r requirements.txt

💻 Usage

All commands are run through main.py. The tool will prompt for your username and password.

View all available commands

python main.py --help

Examples

Get your profile information:

python main.py profile

Get your results for Semester 2:

python main.py results 2

Get your courses for Semester 1:

python main.py courses 1

Launch the interactive materials downloader:

python main.py materials

This will start a guided menu where you can make your selections. The scraped links will be saved to a .csv file in the project directory.

⚠️ Disclaimer

This is an unofficial tool and is not affiliated with, endorsed, or supported by PES University in any way. It is intended for personal and educational use.

The scraper relies on the current structure of the PESU Academy website. If the website's HTML layout changes, this tool may break.

📄 License

This project is licensed under the MIT License.

About

An unofficial, modern command-line interface (CLI) for accessing academic data from the PESU Academy website. This tool is built with a fast, asynchronous architecture to provide a clean and efficient way to view your academic information directly from the terminal.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages