# Kokkoja Kokkoja lets people at different computers write together on a shared page, by hand or by typing, with every page saved automatically to each person's own notebook. It runs in a web browser beside a video call and replaces the call's screen sharing and annotation. It was made first for teaching a foreign language over a video call, and it serves any work that two or more people would otherwise do over one sheet of paper. Kokkoja is free and open-source software. ## Documentation * [An introduction](docs/introduction.md): what Kokkoja does and whom it is for. * [A guest's Kokkoja](docs/guest.md): joining a session from an invitation, and the screen. * [A host's Kokkoja](docs/host.md): installing the Kokkoja program, starting a session, inviting guests, driving the session. * [How Kokkoja works](docs/implementation.md): the parts, the encryption, the page file, running a server. ## In short A guest needs nothing but a web browser: open the invitation link, enter a name, join. A host needs Python 3 and this directory: python3 kokkoja.py --relay wss://kokkoja.andykopra.com/relay opens Kokkoja in the browser; *Start a session* gives an invitation to send to the guests. Notebooks are directories in `Kokkoja` in the Documents directory. ## What is here * `kokkoja.py`: the local program, which serves the client to your browser and keeps your notebooks as files. Python standard library only. * `client/`: the client, plain JavaScript modules run by the browser as written. * `relay/`: the relay server, Python with the `websockets` library. * `deploy/`: how a Kokkoja server is set up (relay plus web site). * `docs/`: the documentation above. * `tests/`: the tests (`python3 -m unittest discover tests`; the end-to-end test needs Firefox and geckodriver).