/amodeus-api

API for Alternative MODEUS app for UTMN students

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

amodeus-api

Middleware (API) for Alternative MODEUS app for UTMN Students.

DISCLAIMER: THIS APP IS WORK IN PROGRESS, EVERYTHING CAN CHANGE OR BREAK ANY TIME. USE IT AT YOUR OWN RISK.

Features

  • Get timetable of any user without logging in
  • Search for any user by their name or UUID
  • Small and self-descriptive responses
  • Built-in Swagger API docs
  • Bugs

Installation

For self-hosting

  • Make sure docker and docker-compose are installed
  • Copy example config, edit it and save as config.yaml
  • Copy compose file to the same directory as the config
  • Run docker-compose up -d --build
  • Set up your client to use API at http://<yourip>:8000

For development

  • Clone this repo
  • Make sure Python 3.10+ is installed
  • Create virtualenv with python -m venv .venv and activate it
  • Modify sources as needed
  • Install an app with pip install -e .[dev] .[server]
  • Copy example config, edit it and save as config.yaml
  • Run it with uvicorn --reload amodeus.app:app
  • Set up your client to use API at http://<yourip>:8000

Roadmap

  • Get timetable for any user
  • Get lesson team
  • Search user by name
    • More search options...
  • Login
    • Get timetable for self
    • Get marks for self
  • Monitor timetable changes
  • Write tests to make sure upstream didn't break API
  • Other features coming soon...