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-sessionfor file-backed sessions
- Use flask-loginwith a single user stored in memory
 
- Use 
- Improve project structure
- Use flask.flashfor 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
 
- Figure out/Add documentation about building 
Description
				
					Languages
				
				
								
								
									Elm
								
								40%
							
						
							
								
								
									HTML
								
								29.4%
							
						
							
								
								
									Python
								
								26.4%
							
						
							
								
								
									CSS
								
								2.8%
							
						
							
								
								
									Dockerfile
								
								1.1%
							
						
							
								
								
									Other
								
								0.3%