Minervac

A command-line client for Minerva

September 2016

The Minerva client provides a command-line interface to Minerva, McGill's student information system. Tasks such as registering for courses, viewing one's course schedule or displaying one's unofficial transcript, can be performed with only one command. The output generated by the program is fully configurable, and schedules can be exported to a calendar file (ICS) or visual timetable (HTML). This project aims to provide an efficient alternative to the frustrating experience of using Minerva as a student.

A timetable generated with Minervac

Summary of Features

  • Course registration
    • Registration by course code or CRN
    • Availability of places in a course can be determined by logging in or searching publically-available information (limited).
    • Jobs — minervac will only register for the remaining courses on each run.
  • Course schedule
    • Configurable reports and date formats
    • Conflict detection
    • Export to ICS (vCalendar)
    • Visual timetable generation (HTML format)
  • Transcript
    • Configurable reports
    • Display of credit/GPA, program/status summary and grades.

Goals

The goals of this project are to create a simple and high-quality interface for the most-used features of Minerva. The user interface will be designed in accordance with UNIX priciples, thus, minervac will be easily programmable. Additionally, minervac will clearly explain how it is connecting to Minerva and provide a starting point for other projects that attempt to use the Minerva "API". This project is free and open-source.

Installation and Usage

  • Check out the Git repository.
  • This program is written in Python and requires the beautifulsoup4 and requests modules. On most systems, they can be installed using pip: pip install beautifulsoup4 requests.
  • Copy credentials.py to credentials_local.py and fill in your McGill ID number and Minerva PIN.
  • An updated reference to the usage of minervac is maintained in the README file.
  • Edit config.py to change formats and settings.
Using Minervac to view the course schedule
Using Minervac to view the course schedule

WARNING

  1. You are solely responsible for deciding if minervac is compliant with McGill's policies, and if you want to assume this risk.
  2. minervac might mess up your course schedule in a very bad sort of way.
  3. Extending this program may lead to Serious Minerva-Induced Headaches.
  4. This program was partially written at OAP.