==========
== Vula ==
==========
automatic local network encryption

Vula's TKInter GUI

The vula GUI was written using Tkinter, the standard Python interface to the Tcl/Tk GUI toolkit.

The initial Design was created with Tkinter Designer [0]. Tkinter Designer enables the design a GUI in Figma [1] that is converted into Tkinter Code. Tkinter Designer is licensed under the “BSD 3-Clause License”[2]. Content created using Figma’s services and any resulting application is owned by the creator of the content. For more information, see Figma ToS Chapter 3.6 [3]

Accessibility

Each element that is distinguishable by colour is also distinguishable by the corresponding text. Unfortunately, Tkinter does not create the necessary outputs for the most common screen readers and is therefore not suitable for blind people. [4] [5]

Testing

Testing Tkinter applications is not an easy task. Neither unit test nor doctest can be used to effectively test front-end code. Those tests are more suitable for isolated helper methods without many side effects. The most appropriate testing strategy would probably be functional testing with integration tests. That could be a project in the future.

Localization

Currently the UI is not localized. There are some translations in vula/locale, but those are not used and do not work. Because the buttons are implemented using images to achieve a better design, localization there is tricky. Either we create a button for each language or we use normal buttons for buttons with text. Buttons with only an icon are not a problem. Implementing localization and addressing the button issue would be a good follow-up project.

Screenshots

Dashboard

Dashboard

Peer

Peer

Verification Key

Verification Key

Descriptor

Descriptor

Sources

[0] Github Tkinter-Designer

[1] Figma

[2] BSD-3-Clause

[3] Figma ToS

[4] Tkinter Screen Reader Python Mail

[5] Tkinter Screen Reader Forum Discussion