Ideas for Google Summer of Code/Desktop GUI
We have several User interfaces, but many of them are either unmaintained, or only work on Android, or require a net connection, or only work with pairs that use only Java-ported modules, or require a lot of terminal work to set up.
The point of this project is to create a desktop GUI that works with any of the pairs that you can use through the terminal, and that offers at least the features of apertium-html-tools. We want users to be able to just click an icon, and have an app come up with a UI similar to https://apertium.org (at least as user-friendly). Document translation should be included (currently turned off on apertium.org).
The backend should probably use a locally running apertium-apy (since this already handles pipeline management quite well), starting it up along with the app and shutting it down when the app exits. APY is not used on Windows/Mac - but you can just reuse the Simpleton code for those two.
The app should work cross-platform - Windows, Mac OS X, Linux, etc. While Qt gives you that for free on the GUI side, the package and process handling is not as portable. We'll need 5-6 different systems: Windows, OS X, apt-get, yum, zypper, and dnf - we've got the repositories, so just need to use them. On Linux, this means asking for sudo priviledges to execute the correct install commands, probably via PolicyKit / polkit.
 Features and tasks
- Should "just work" for the user
- Work with package-installed as well as self-compiled pairs
- Handle startup and management of apertium-apy
- We might need some minor enhancements to apy, to ensure not too many pipelines are running at once and using up all the RAM
- Nice and functional GUI :)
- Be easy to package (for making .deb/.rpm's)
- Document translation
- Spelling (could just use locally installed myspell/enchant here) on both input and output
- Possibly a button to do OCR if tesseract is installed (low priority)
 Coding challenge
- Install apy and some language pair(s), and make a simple desktop GUI with an in-box and and out-box, which translates as you type using the server on localhost.
 Frequently asked questions
- none yet, ask us something! :)