Dictionfairy

Summer 2024 - https://github.com/isaac1000000/dictionfairy

Dictionfairy solves a simple problem. When I'm reading something, I may need to look up a word. But then I'd have to open a new tab (or, even worse, a whole browser!), navigate the dictionary, then finally search my word. But not anymore - Dictionfairy hangs around above other tabs and waits for a hotkey. Depending on the hotkey, you'll get instant results for either the word you've already selected or the next word you click on your screen. It's that simple. You can choose the dictionary you'd like to use for your words; as of right now, Dictionfairy comes with support for dwds.de (de-de), leo.org (de-en), WordReference.com (fr-en), and Merriam-Webster (en-en). The app also includes functionality for configuring your preferred dictionary if you'd like to get results in a language I haven't added yet. You'll find instructions for this (and more!) in the docs, and you can download Dictionfairy from the GitHub link above.

I built Dictionfairy in Python using PyQt6 to develop the desktop app and Selenium for the webscraping backend. It's a bread-and-butter webscraping project that solves an actual problem that I have, and with the customizable dictionary feature, it should be applicable to anyone who's learning a language or just happens to use a dictionary often. Most of the challenge of this project was scalability. I knew that if I didn't start planning ahead from zero I'd quickly end up with a mess of barely functional component parts. The approach I took was calculated, and I focused on making sure each part of the project had clear pipelines for input and output. This ensured that I could effectively merge everything into a reliable and clean product. The other benefit was how relatively simple it was to allow user configuration for custom dictionaries, where all that's needed is a website link and a hint for what to look for. I've had a great time exploring design principles with this project and look forward to releasing it for language students like myself.