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.
- 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.
This client is built with a modern, maintainable architecture designed for performance and reliability.
- Asynchronous Core: Uses
asyncio
andhttpx
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.
- Python 3.8 or higher
-
Clone the repository:
git clone https://github.com/8figalltimepro/PESU-Academy-CLI.git cd PESU-Academy-CLI
-
Create and activate a virtual environment:
- macOS / Linux:
python3 -m venv venv source venv/bin/activate
- Windows:
python -m venv venv .\venv\Scripts\activate
- macOS / Linux:
-
Install the required dependencies:
pip install -r requirements.txt
All commands are run through main.py
. The tool will prompt for your username and password.
python main.py --help
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.
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.
This project is licensed under the MIT License.