In my time at Ajou University I chose not only computer science courses but also Korean Language 1. Every one or two weeks we had to study some vocabulary that usually consisted of a list of 20 to 30 Korean words. When I was still in high school studying French and German I often used a Dutch website to practise the vocabulary. However, when I wanted to use it again for Korean language, I noticed that you now had to register an account and that you had to pay for most of the features. I noticed the same on several other websites, which gave me the idea to just start my own type of website like this.

“How hard can it be?”, was my first thought. Essentially you just have one list of word pairs. One is the ‘native’ word, and the other is the word to learn. So that is what I started with. I set up an index.html file and included jQuery. No server side code and no external javascript files apart from jQuery. I had enough boring lectures where I did not need to pay much attention, so during those lectures, I started programming (and in the end, almost no code was written outside of lectures). The first version of the script was extremely basic; a loop that iterated over the list, showed the native word and an input element to type in your answer, waited for your input and went on to the next item in the list. If you got the word right, the input element turned green, and if you got the word wrong, the input element turned red, and the correct answer showed up beside it.

After implementing this basic functionality I felt the need to make it easier to create lists, so I wrote another script that gave you the possibility to create a list, naming it and saving it to local storage. While implementing this, I felt like I should also be able to edit and delete lists, which I implemented afterwards. By now index jpj8doq.html started getting bloated and difficult to work in. This gave me the idea to set up a small framework that made it easy to setup a new site and easily switch between pages. I made it ES6 Object Oriented (as far as that’s possible in javascript of course) and created a separate folder for javascript class files. After this, I implemented bootstrap for the looks, improved practising, implemented language packs, Git version control and even new ways to practise the languages.

By now it has a lot of features and is bug-free for regular usage. For that reason, I have decided to release it to the public. Upcoming updates will include features as a history system, experience and levelling system, javascript keyboard so that you don’t have to install one on your PC/laptop, and much much more.

Link: https://maartenvandenhoven.com/beta/korean