OpenQ is an open source frontend for Q Student Connection.
Currently, OpenQ is able to:
- Login
- List and display students
- List courses and grades
- Display attendance data
- Display demographic data
Since OpenQ is in early development, the current feature set is very incomplete.
To run this project for yourself, follow these steps:
- Clone this repository.
- Install the needed dependancies by running
pip3 install -r requirements.txt. - Copy
config/defaults.jsontoconfig/config.jsonand modify the options to your liking. Make sure to set the"endpoint"option to the url of your Q instance's login screen. - Run
python3 main.pyto start the server. - Alternatively, install GNU Screen on your system and run
bash scripts/start.sh. You can then usescreen -dr webserverto view the server log.
The config file is located at config/config.json. If it doesn't exist, it'll be created automatically.
{
"debug": false, //run flask in debug mode and include stacktraces in error responses
"server_port": 5000, //http server port
"server_address": "0.0.0.0", //http server bind address
"default_endpoint": null, //default q endpoint to use
"gzip_level": 9 //gzip compression level for json responses (false to disable)
"indent_json": false //apply indent to json responses (set to an integer to enable, false to disable)
}
OpenQ provides an HTTP API which makes interfacing with Q significantly easier.
Once the API is complete, proper documentation will be placed here. In the meantime, look at the API related code in main.py to get an idea on how it works.
Icons credit: Iconoir (license)
Font credit: Fredoka (license)
This project uses pytailwindcss (license), Flask (license), and lxml (license).
This prject is licensed under the GNU GPL v3.