Votr is an alternative frontend providing easier access to AIS2, the academic information system used at many universities in Slovakia. If you are a student of Comenius University, you can try Votr at https://votr.uniba.sk. If you need help, write to us at firstname.lastname@example.org. If you're interested in the development of Votr, read on.
AIS2 doesn't have an official API, so Votr primarily uses web scraping. The AIS2 servers think they're talking to a real user with a real web browser pressing buttons and navigating the endless popup windows that form AIS2's user interface. But it is in fact Votr, sending simulated button presses and parsing AIS2's mangled tag soup.
Votr's code base consists of three layers that build on each other. Aisikl, the lowest layer, does the actual communication by sending HTTP requests with fake user actions and parsing the responses from WebUI (the framework AIS2 is based on). Fladgejt contains the business logic for various AIS2 tasks and knows where to find which buttons and tables. And Votrfront is the web app that Votr's users interact with.
Installing and running Votr
- Install Python 3.4+ and virtualenv. E.g. on Ubuntu 18.04:
sudo apt install virtualenv
- Install node.js 8+. E.g. on Ubuntu 18.04:
sudo apt install nodejs
- If your Linux distribution doesn't have node.js >= 8, or if you don't want to install node.js system-wide, you can use nvm or nodeenv. Read more.
- Install Yarn.
Download and set up Votr:
git clone https://github.com/fmfi-svt/votr.git cd votr virtualenv -p python3 venv
Install Votr's dependencies in
venv/bin/pip install -r requirements.txt yarn install
(Note: Repeat this step every time you pull a new version of Votr, in case they were updated.)
Run Votr by starting these two commands in separate terminals:
(They are Votr's web server and Votr's JS/CSS build system.)
venv/bin/python console.py serve --debug
Contributing to Votr
If you'd like to help improve Votr, please get in touch! E-mail us at email@example.com and we'll help you with anything you need -- whether it's choosing a task to work on, understanding Votr's code, implementing your changes, or sending a pull request on GitHub.
Some documentation is on the wiki: https://github.com/fmfi-svt/votr/wiki
Some documentation is in docstrings in the source code and rendered with Sphinx: http://svt.fmph.uniba.sk/~tomi/votrdoc/
pip install sphinx sphinx-rtd-theme make -C docs html