Developer Documentation
=======================
Find here information for developers of this project. If you just want
to use the package you don't need to read any further.
Deployment
----------
Checkout the repository to ``/home/pi/flipflapflop``::
$ cd /home/pi
$ git clone https://github.com/tbs1-bo/flipflapflop.git
Having `poetry `_ installed, you can install the package
and its dependencies::
$ cd flipflapflop
$ poetry install
The deployment scenario described here relies on a Raspberry Pi that acts as an
access point. To setup a Pi this way you can follow the `instructions from raspberrypi.org
`_. We
choose to give the Pi the IP4-address 10.0.0.1/8. The ethernet port can be connected directly or
via USB to a local net in order to make the Pi accessible for other scenarios.
The display will be connected to the Pi directly. On the Pi runs a systemd-service as described
in the `Raspberry Pi Documentation `_.
The service file :download:`flipflapflop.service <../deployment/flipflapflop.service>`
must be copied to ``/etc/systemd/system`` and can be started afterwards::
$ sudo systemctl start flipflapflop.service
To enable the service for automatic startup during boot use the following command::
sudo systemctl enable flipflapflop.service
The display server runs on the default port 10101 and can be configured further in
:download:`displayserver_service.py <../displayserver_service.py>`. You can specify
dimensions of the display as well as module configuration here.
Creating the documentation
--------------------------
The documentation is made with `Sphinx `_.
Therefore the sphinx framework and a third party
`theme from readthedocs `_
must be installed.
.. code-block:: bash
$ pip install sphinx sphinx-rtd-theme
The documentation is created with sphinx and is configured in folder ``docgen``.
You can use ``make html`` or ``make.bat html`` to create the docucmentation
in ``docgen/_build/html``. It will automaticall be copied to ``docs``.
After pushing to github it will be available
`there `_.
Class Diagram
-------------
The following diagram shows classes of the project.
.. image:: ../media/class_diagram.png
Video Backups
-------------
The videos linked in this documentation are hosted by YouTube. There is a
mirror of these videos at
`archive.org `_.