Dictionary & Wordbook

February 21, 2024
local_offer Web PWA
Overview

The online dictionary covers over 650,000 English words. The wordbook extracts words from subtitles and aids users in the memorization process.

Table of Contents

Tech Stack

Frontend: JavaScript, React, webpack
Backend: Ruby, Rails, Sidekiq, Python, SQLAlchemy, Postfix
Database: MariaDB, Redis, Memcached, Tkrzw
Web Server: NGINX
DevOps: Chef, Capistrano
Saas: Stripe, Mackerel, Amazon Polly

(In Evaluation Phase)
Backend: Text-to-Speech
Database: Aerospike

Backstory

While I watch TV shows or movies, I often find words that I do not know in subtitles.  I have always wished for an app that can extract these words from subtitle files and help me keep track of my memorization progress. I wrote a detailed story on the project website.
Why and how I made a wordbook app

In the previous project "Wine Search", I put the frontend code into the backend code as I was used to doing. I had some struggles. It was hard to set up the webpack configuration with the Webpacker gem. Deploying the project affects both the front and the back sides. In this project, I separated the frontend and the backend.

Most Challenging Parts

Besides the Rails part, it was challenging most of the time. I am writing the challenges I have faced.

Progressive Web App

The frontend of the app has been developed using React with Redux-Saga. Implementing authentication, the browser back button and swipe screens was quite challenging. I spent some time working those out.

Opening the app across multiple tabs within a single browser disrupted the authentication process. The order of responses was troublesome. In asynchronous responses, it is possible for an API called later to respond before the former one. I needed to work on those issues.

The browser back button and app back button did not work well together. I ended up implementing a function to maintain the redirection history.

Integration of Swiper for a swipe function was complicated. I had to consider and plan to make it work carefully.

Dictionary

Creating a dictionary was much harder than I thought. Thanks to the efforts of those who have contributed to dictionary development in the past, I could overcome the challenge. I spent significant time reading documents about dictionaries, repeatedly revisiting them until I understood better.

Latest Posts
AI-powered Furby
February 23, 2024
Wine Search
February 22, 2024
Content Management System
February 17, 2024