Back to projects

The Dictionary Of Obscure Sorrows

A website to find words you might have never heard of

Stack

  • React
  • Express
  • MongoDB
  • BeautifulSoup
Neo-brutalist design of a website showing a word from the dictionary of obscure sorrows

🚧 Under Construction: I’m working on filling this space still! Check back soon for updates.

What

This is a website which is meant to show a daily word from the Dictionary of Obscure Sorrows.

Why

My girlfriend loves words, specifically Merriam-Webster’s word of the day, and I had been itching to create a full stack app. Thankfully the stars aligned and I came up with a kind of illegal idea. If the author ever asks me to take the website down it will be taken down.

How

Why I chose the stack

I went with MongoDB as the database here because I wasn’t too sure about all the features that I wanted for each word. I personally have found that non-relational databases are sometimes a little easier just to play around with. The potential read heavy nature of the app also made MongoDB much more appealing, since it was easy to take the performance hit from denormalization of data on inserts

Express and React were just the default frontend and backend frameworks at the time, (and arguably still are), and I was comfortable just using them.

The process

Since this app had a fixed set of words, I started off by using an in memory database, not even sql-lite. I built individual data fetching functions which I could replace later as needed

The next step was getting the data into the database, which I used beautifulSoup for, guessing the structure based on the surrounding HTML. It was a basic webscraping exercise.

Afterwards, I just had to create a hashing algorithm which created one unique word every day, and iterated through them.

Result

It was succesful! I added words and stuff, and authentication, and I was able to also use it to invite my girlfriend to prom. It is commit hash on github.

Resources

Word effects from hyperplexed Not too sure what