In the previous post, I discussed how I decided what to build. In this post I would like to discuss more about the technology choices.
I heard about the DigitalOcean Hackathon and immediately decided that it would be the perfect motivation and opportunity to complete building the tool. The first choice I faced was to choose the components, some of the options I came up with are:
The schema management would be difficult and would need a separate service to manage users. I would end up with too many moving parts and all the keys and credentials would be exposed in the browser. Not a good choice for multi-user apps
This would definitely solve the problem of securing the keys and credentials. The number of functions required for CRUD operations would be just too many.
Same as #2, but uses Hasura for CRUD. There's a slight chance of exposing user info stored in the same DB via Hasura.
This is a very promising option. Just that I didn't know about any good frameworks, so would have to roll my own CSS and the board like structure would be next to impossible to build with vanilla JS.
This option felt like a silver bullet when I set-out to build this tool. I had to choose from ExpressJS, Ruby on Rails and Django for building the API, and Angular and React for building the frontend. I chose Django and React as I am more comfortable with them as compared to the other options.
Initially I was very skeptical about completing this project, but soon I was confident enough that I bought a domain name for it. I named it "Rappel". It is a synonym of Abseiling.
Abseiling, also known as rappelling from French rappeler, 'to recall' or 'to pull through', is a controlled descent off a vertical drop, such as a rock face, using a rope.
Abseiling on Wikipedia