Skip to content

NEIAAC/plannei

Time to plan 🕑📅

Using Plannei, our state of the art schedule automater, you can ensure you get the best possible schedules for your classes at the University of Coimbra.

The app runs a self-managed browser that will seamlessly interact with our student portal, nonio, to automatically fill in the data to get your perfect schedule, based on the preferences you give it throught a spreadsheet.

You can now be the biggest nerd on the block and get the schedule you want as soon as the enrollment period opens, leaving your colleagues in the dust.

NEI/AAC is not responsible for you losing your perfect schedule due to issues with the app. Because of the way the app interacts with the nonio portal, minimal updates/changes to the website layout by the creators may break functionality. We kindly ask you to report any issues you encounter as soon as possible, so we can update our implementation.

preview.gif

Usage 🚀

  • The app is automatically built by a pipeline with every release, so we provide direct download links for most operating systems.

  • If you run into issues with the downloads below, or if the app does not launch, you can always run it as a developer using these instructions. It's especially easy if you already have Python installed!

  • Detailed usage instructions can be found in the wiki page.

  • See the example directory for demo files.

  • Make sure you close every other program that may be using your CPU to get the maximum speed when running the app!

  • Windows 🪟

    • Use this link to start the download.

    • Start the exe file inside the extracted folder by double clicking on it, you can create a shortcut with any name you like for this file.

    • If you get a message from Windows with a warning that blocks the app from running, add it as a security exception.

  • Linux 🐧

    • Use this link to start the download.

    • Start the bin file inside the extracted folder, remember to update the execution permissions first by opening a terminal and running:

      chmod +x <name>.bin
      ./<name>.bin
    • This binary has been successfully tested on Ubuntu and Arch with both the Wayland and X11 protocols, other setups may need additional tinkering.

  • MacOS 🍎

Development 🛠️

  • Requirements 📋

    • Python 3.12.0+
  • Setup ⚙️

    • Clone the repository and open a terminal inside it.

    • Install the dependencies:

      # It is it recommend that a virtual environment is set before doing this!
      
      pip install .
    • Start the app:

      python src/main.py
    • The app will create and store logs in a diretory determined by QStandardPaths.StandardLocation.GenericConfigLocation/AUTHOR_NAME/EXECUTABLE_NAME which is OS independent. These logs can be requested from users to get data on why things are not working. Running the binary with the --debug flag will increase the verbosity of the logs, for more detailed information.

  • Tooling 🧰

    • Mypy is used for type checking:

      pip install .[lint]
      mypy src/main.py
    • Ruff is used as a linter and formatter:

      pip install .[lint]
      ruff check --fix
      ruff format
      
      # To automatically lint and format on every commit install the pre-commit hooks:
      pre-commit install
      
      # When using pre-commit hooks, git commands may fail if any files are checked with errors.
      # Changed files must be added to the staged area and commited again to apply fixes.
  • Testing 🧪

    • PyTest and PyTest-Qt are used for testing:

      pip install .[test]
      pytest
  • Building 📦

    • Nuitka is used for cross-compiling to all supported platforms, this is how the app is built from the source code, in each release:

      pip install .[build]
      nuitka <options> src/main.py

      See the deploy workflow for a list of options used for each platform.

About

Automatic picker app for the UC schedule planner portal.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages