fau-fablab / FabLabKasse

FabLabKasse, a Point-of-Sale Software for FabLabs and other public and trust-based workshops
https://fablabkasse.readthedocs.io
GNU General Public License v3.0
15 stars 4 forks source link
cash fablab hacktoberfest point-of-sale sales

FabLabKasse

code climate: Code Climate

unittests: Build Status codecov.io (we are proudly untested [TM])

FabLabKasse, a Point-of-Sale Software for FabLabs and other public and trust-based workshops

This software is not ready for generic use by other FabLabs. Currently, too many features are tailored for the specific use-case of FAU FabLab. If you want to adapt this software for your use, please get in contact and also consider a complete rewrite.

Please see https://fablabkasse.readthedocs.io for the documentation

Note for FAU FabLab internal usage / Test-VM

If you are a member of the FAU FabLab, please first read the internal overview: https://github.com/fau-fablab/FabLabKasse-interna/blob/master/README.md

It contains important information on the FAU FabLab specific configuration and add-ons.

Getting started

Please checkout the repository recursively since it contains submodules:

git clone --recursive git@github.com:fau-fablab/FabLabKasse.git

If you want to test on a VM, take a look at README_Vagrant.md on how to automatically set up a Virtualbox VM for testing.

See INSTALLING.md for detailed instructions on how to install the required dependencies. You can skip the configuration stuff for later.

Then, for the first try, you can just do:

./run.py --example

Have fun and give feedback!

Testing features without real hardware

The demo VM starts placeholder software for the receipt printing and the FAUCard payment (if the custom plugin is installed).

Otherwise, you can start this manually.

Debugging

./run.py --debug or gui.py --debug attaches a debugger (FIXME: not implemented, placeholder warning only) and disables the graphical exception-hook.

Code style guide

All contributions should have a good coding style:

Formatting

We use black for formatting. You can use a dockerized black instance with the container_black.sh shell script. Use it as you would black:

# format everything
./container_black.sh .

The provided VS Code setting calls this script in order to make sure that you can format with the same version of black. When updating the version, make sure that you change it in both the GitHub Workflow and the container script.

Low level (formatting, docs)

High level (structure)

def main():
    print "Hello, this is yourscript.py"
    do_something()

if __name__ == "__main__":
    main()

Contributing

Commit messages

Please start your commit messages with FIX / ADD / IMPROVE / REFACTOR / DOC if it is possible and makes sense: