Welcome!
This is a management program written for my school library.
If you really want to use this, follow the instructions below:
- Make sure you have Python >= 3.6
- (optional) create a new virtual environment and activate it. If you don't, you may have to adjust the following commands
- download and unpack the latest code (
masterbranch if you're feeling adventurous, some (hopefully) stable release if not) - write a bare-bones config file (you can use
exampleconfig.cfgas an example) $ python buchschloss/models.pyto create the database (SQLite)$ export BUCHSCHLOSS_CONFIG=/path/to/your/config.fileor start the following commands with$ env BUCHSCHLOSS_CONFIG=/path/to/your/config.file- test your config file with
$ python -m buchschloss config- TODO: insert probable errors and how to get rid of them here
- when it's valid, start the simple command-line interface with
$ python -m buchschloss cli - Type
login SAdminat the----- >prompt - Type
Pa$$w0rdwhen asked for a password - the prompt should change to
Member[SAdmin](level_4) > - you can now do everything! Type
help commandsto see the available commands
TODO: write something that explains how to actually do stuff
The actual files are in the buchschloss directory. Inside, there is:
core.pythe main application providing the interface used by the user interfacesmodels.pydefinition of the database models; can be run as a script to initialize the databaseutils.pystuff that doesn't belong anywhere elsecli.pya simple command-line interface providing a thin wrapper around the core APIgui2/a package of the current GUI, written withtkinterwidgets.pyspecial widgets usedvalidation.pyentry validation logicactions.pythe code that actually calls the actions exposed bycoremain.pythe graphical application__init__.pyglue
lua/subpackage for lua scripting support__init__.pymain execution, sandboxing and lua-based cli interfaceobjects.pyobject wrappers exported to luabuiltins.luaabstraction of core APIs
I am more-or-less in the process of documenting the internal parts (see doc/).
As of now, only some basic functions are tested, notably excluding (in the sense of not being tested) the GUI. I will try to add relevant tests whenever I change something.