Verified Commit e619c834 authored by Jakob Moser's avatar Jakob Moser
Browse files

Link a few libraries

parent 73f17d17
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ PoolPay consists of encrypted storage (called “vault”), a Python backend, a

## Backend

The backend is started automatically by a Systemd unit on boot. It has a database stored in the vault, and manages basically everything that happens: It listens for signals from the card reader or the touch screen, checks the database for the user, changes the stored amount, and tells the customer UI to show something (via the director).
The backend is started automatically by a Systemd unit on boot. It has a database stored in the vault, and manages basically everything that happens: It listens for signals from the card reader or the touch screen, checks the database for the user, changes the stored amount, and uses the _director_ to tell the customer UI to show something.

One thing is somewhat tricky: If the vault is locked (i.e., the password is not currently available in RAM, so the data cannot be decrypted, so the database cannot be read), the backend cannot run regularly. This is the case at least after every reboot.

@@ -15,6 +15,7 @@ To fix this, we built the _wire_. The wire consists of an HTTP server started by
- [🐍 `poolpay.model`](../poolpay/model/) to see the (rather simple) model
- [🐍 `poolpay.__main__`](../poolpay/__main__.py) to see how the backend is actually launched
- [🐍 `poolpay.wire`](../poolpay/wire/) for the wire over which the vault password is sent
- [🐍 `poolpay.director`](../poolpay/director/) to see how customer UI and backend are connected

## Vault

@@ -36,6 +37,12 @@ In the application directory, we have a file `instance.img`. This file can be tr

<!-- TODO -->

### Things To Look At

- [🐍 `poolpay.ui`](../poolpay/ui) defines abstract scenes and their concrete implementations with the PyGame library
- [🐍 `poolpay.display`](../poolpay/display) implements sending data to the display connected to the Pi
- [🐍 `poolpay.touch`](../poolpay/touch) handles touch events

## Admin UI & Admin Tools

<!-- TODO -->