Renewing my Rails knowledge

Renewing my Rails knowledge

A series of blogs recording how I approached building a new Rails 7 application

I wrote my first code using Ruby (and Rails) sometime around 2011. I was working for a company that was building a procurement system for large hotel chains. The technology that was in place was severely limited in scalability, as it was an in-memory application database called Bullant that was restricted by the amount of memory a Windows server could access.

The application would be rebuilt using Ruby on Rails. Over those intervening years a number of different versions and designs were introduced and discarded. At the point I left this organization they were still on Rails 4.2 so my exposure to an subsequent versions of Rails was limited.

Therefore this blog is to document what I am doing to close the gap in knowledge from that older version of Rails to the new vision of Rails 7, with TailwindCSS and StimulusJS.

The application I have in mind for this is actually related to my previous employer. One issue that cropped up quite often was the quality of data that was being entered for use in the system, in particular a centralized catalogue of products and pricing. This data has problems with duplication, spelling mistakes, inconsistencies and other errors. Can I build something that is for administrators of this system to help them automatically fix these types of problems?

Particular areas of learning interest are the following:

  • Using GitHub Actions for CI/CD.
  • Alternatives to Devise and Authority for authentication and authorization. Perhaps Doorkeeper and Pundit?
  • ActiveRecord improvements that have been added in Rails 5, 6, 7. eg left joins.
  • Possibly investigate Sequel.
  • Comparing minitest (what I don't know) to RSpec (what I know).
  • Using Sidekiq as opposed to Resque for asynchronous job handling.
  • Using Hotwire (Turbo + StimulusJS) to add interactivity to the application (rather than using React or Vue).
  • Using TailwindCSS and the components from TailwindUI.
  • Charting components for displaying beautiful dashboards.
  • Administration components for managing back end data.