Demo

Word of the Day

Inspiration

I moved to Spain this year and I wanted to learn as much Spanish as possible but between working a 9 - 5 and other interests I find it difficult to fit in the time to learn new vocabulary. Even learning one word per day or having a reminder to learn can help.

What it does

Using the Courier API, Courier's Node.js SDK and email designer, I've created an app that will notify you once daily with a new word in another language to help you learn vocabulary in your chosen language. This is my first hackathon ever, and I wanted to build something from scratch!

How I built it

I use Heroku to host it, and Heroku scheduler to call the word function and Courier API every day. Firestore as my database to store the words. Node.js/Express to interact with external APIs and to host my frontend code using EJS with Tailwind to style my front end. I used the Courier email designer to design my email notification.

Challenges I ran into

  • Finding and connecting the different APIs for the data source.
  • Figuring out how to send dynamic notifications as some people have subscribed to different languages, therefore, needing different translations.

Accomplishments that I'm proud of

  • I couldn't find an API that gave me exactly what I wanted so I had to build my own that would get a word, and description and translate it into any language. Another thing I wasn't sure about using Courier, was how you might accommodate users who subscribe in multiple languages, so I built my own function for that.
  • I'm also really happy with my scope of work as I was able to complete almost everything that I planned to include within the time frame that I had given myself.

What I learned

I hadn't had much experience with Heroku before so I've had the chance to get familiar with it and its free tier which seems like a great option to quickly get a prototype or dev site up and running. It's also simple. I also got to learn the Courier API and was very happy with the use of the SDK as it fits right into Node.js.

What's next for Word of the day

  • I would like to add more features to it such as more words per day, perhaps sentence examples and other educational content.
  • I'd also look into adding it to other channels such as Slack.
  • I'd also consider turning it into an API for other language apps to make use of.

References:

Found this cool page that has free APIs to make projects with: https://landof.dev/public-apis/

Share this project:

Updates