jon/README.md
2024-05-13 19:31:50 +02:00

1.8 KiB

jon

the tamer of garfield

Setup

jon is a Python WSGI application written using Flask. This means you'll have to install a bunch of Python packages to get up and running.

Dependencies

pip install -r requirements.txt

You should probably use a virtualenv for that. I develop jon using Python 3.10 but it should work with older versions as well.

Arch Linux

If you're on Arch, these packages are required for running the server:

python python-flask python-flask-login python-psycopg2

Building Frontend JS

Most of jon works without JS but there are some features that require it. The frontend code lives in ./frontend and is written using Elm, a functional language that compiles to JS. To compile the Elm code to .js files, first make sure that the Elm compiler is installed:

elm --version
# 0.19.1

Then run make frontend.

Running

flask --app jon run --debug

--debug restarts the server when a source file changes.

fsmi-db forward

ssh -nNTvL 5432:fsmi-db.fsmi.org:5432 fsmi-login.fsmi.uni-karlsruhe.de

TODO

  • Implement and document report generation
    • How many days will the item last?
    • How many do we need to last X months?
    • etc.
    • Make it print nicely
  • Make it possible to edit entries
  • Fix unsafe client-side sessions, either:
    • Use flask-session for file-backed sessions
    • Use flask-login with a single user stored in memory
  • Improve project structure
  • Use flask.flash for error messages
  • Implement item and snack entry as Elm application
    • Figure out/Add documentation about building entry.js
    • Clean up the code a little and add some comments
    • Needs good documentation for maintainability
  • Use cool new function for deactivating items