Each request on the fronted would make a call to the REST API define/<word>
. This call would first check if the word is already available in the DB. If not, it would store it, and download the images from an image search API.
Loading each word took some time, as DuckDuckGo API was slow and it took time to download each image. So, I decided to use a form of memoization; I could persist the images and store their filepath in the DB, loading it quickly the next time the word was called.
Memoization has posed some problems on the cloud - I am using the free tier of Heroku, which flushes any ephemeral storage every hour. The app continues to be slow, unless you exhaust the words every hour (and since I am done with the GRE, I no longer feel a need to do this).
Be able to enhance the word list dynamically (currently you can enter a word to check its definition)
Add a feature to save all the words as PDF.
Make an iOS/Android version of this.
Thanks for reading! If you have any suggestions, feel free to check out my repo and open an issue 😊
PROJECTS
personal python