Building a flashcard app in Ruby - Part 3
CLI Overhaul! Welcome back! We’re now going to overhaul the presentation layer of the app. We’ll be implementing: A main menu (and submenus) A way to create flashcards in-app General improvements to user experience In Exalidraw, I sketched up the following flow: Now, the challenge is how to materialise this into working (and hopefully clean) code! The menu component Central to this design is the menu component itself, showing a list of options and allowing the user to choose one. I did some googling and found 2 libraries to help with this task: ...
Building a flashcard app in Ruby - Part 2
Re-assessing Let’s see where we last left off with the flashcard app. We generated some basic application code with an LLM, and integrated that with a local database. The app itself simply iterates over all the flashcards in the database, in the same order, showing the front of the card and prompting the user to type what’s on the back of the card. The user then gets feedback on whether they were correct, and if not, what the actual answer was: ...
Building a flashcard app in Ruby - Part 1
Goal I’m a seasoned generalist software developer with limited Ruby experience. I wanted to build a Ruby application in an effort to familiarise myself with the language, and discover what it has to offer in terms of productivity gains and developer satisfaction. What to build? I decided to build a console application to practice flash cards, which I’m calling “Ruby Recall”. There are two main reasons for this choice: It’s a simple concept, making it easier to implement. It has practical use, in that I can use it for language learning. This should help motivate me. Getting started Since I’m a Jetbrains guy, I begin by creating a new Ruby project in IntelliJ… done. ...
Dependency injection in TypeScript and Node.js
This is an exploration of the current landscape of dependency injection solutions for Node.js based TypeScript applications. Do you need a fancy framework to manage your dependencies? By breaking down each option into a set of comparable features, we can make an informed decision. Typically, an app is composed of many singleton services/repositories that reference each other. Since they depend on each other, these components can be referred to as dependencies. In the beginnings of app development, there are few classes and so dependencies are easy to deal with, no matter how badly organised the code is. As the app grows and the dependency tree widens and deepens, it may be necessary to take a more strategic approach to manage these dependencies. ...