# jon > the tamer of garfield ## Setup ``` 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. ### 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 item and snack entry as Elm application - [ ] Needs good documentation for maintainability - [ ] 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 - [ ] Figure out/Add documentation about building `entry.js`