= AdvLabDB :source-highlighter: highlight.js :highlightjs-languages: bash image:https://img.shields.io/badge/code%20style-black-000000.svg[link=https://github.com/psf/black] image:https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336[link=https://pycqa.github.io/isort/] == Requirements You need to have Python version >=3.10 and Poetry installed. To install Poetry, follow the https://python-poetry.org/docs/#installation[official instructions]. == Starting server IMPORTANT: Every following instruction has to be followed every time before starting the server if not mentioned otherwise. === Update code and dependencies Navigate to the directory `advlabdb` where the repository is _already_ cloned (otherwise clone it) and run: [source,bash] ---- git pull origin main ---- to pull the latest changes from the remote repository. Then run: [source,bash] ---- poetry install ---- to install (or update) all needed packages to the virtual environment. === Enter the virtual environment Run: [source,bash] ---- poetry shell ---- ''' === Re(create) a test database WARNING: Running the following line *drops an eventually existing database*! The data in the database will be *lost*! This has to be done only if you are starting the server for the first time without an existing database or you want to *drop and recreate* the database. [source,bash] ---- python -m advlabdb.scripts.test.test_database ---- This (re-)creates the database with some elements for testing. ''' === Start test server Now you can start the server by running: [source,bash] ---- python run.py ---- This command will print out the URL for accessing the local server. For example: ---- * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) ---- This URL leads to the home page where you can login with this testing admin account: * email: \admin@advlabdb.de * password: admin NOTE: Obviously, the email address is fake. == ToDo * Deactivate assistants account after a while if not assigned to experiments * Statistics + semester review with alerts * Documentation with Asciidoctor * Backups * Logging * Email integration + assistant reminder? * Students code for getting information and giving feedback * License (GNU AGPLv3?) * Privacy policy