For many years my dad has collected all kinds of stuff like stamps, coins and old useless screws and bolts. However things got serious when my grandmother died in 1990 when he got home with her collection of memorial prayercards. Of course losing his mother was a thing but after a while he accepted the loss and got more and more intrigued by these prayercards and started collecting them himself.
Fast forward to 2000; When I got my bachelor degree in chemical engineering I quickly realised that my future was in IT and began to play with MS Access and ended up making a 'beautiful' database for my fathers collection which had grown significantly in ten years. After a few development cycles he started to enter all of his prayercards into it. The goals for him was mostly the make the collection searchable for himself.
Again fast forward, now to 2017; My dad, now retired, wanted to do something with his database and make it accessable for the whole world on a brand new website. "Can you do that?" he asked me. "I can, but I'm not going to build and maintain a website for you" was my answer. "Oh, and now?". "Now you figure out how to make a website, I will make your database searchable over the internet". And then it began....
My father, with a little help from myself ended up with a hosted wordpress website and I made the database searchable, with nodejs... wait WHAT!? Yes I made it in node.js
Given all the hatred that there is outthere towards javascript frameworks I wanted to use it myself and see If I could learn something from it.
The code is on github and you can see it is not that complex. I used a postgresql database for storage and use a csv file to import the data into the database. To make the data better searchable I create an extra table where the data is normalised into a string. by normalising the input for searching the same way I can quickly find stuff.
The main thing I learned is about the asynchronous behaviour of javascript. This was quite a struggle at first but when I got the hang of it I quickly developed the code.
Would I use it again? Nope. Why? With my current knowledge I probaly would build it in dotnet core or python as I'm feeling more confortable with these languages. Also postgresql seems to be off a little. For the next version I am thinking to use redis or some other in memory cache. But that will have to wait for a while as other projects are awaiting....
I will write a blog someday (in Dutch) for my fathers website explaining what I did to make the data searchable.