Learning Ruby on Rails Project

A great learning project for Ruby on Rails is to build a small TODO list application. This project contains enough attributes for an application that can add, show, modify and delete (CRUD). As part of the project you can also build in authentication attributes for session management for users of the application.

I have been doing a Ruby on Rails course for a number of months now (off and on). The major project of this course is to build a Recipe sharing application. I have roughly completed two thirds of the course. A side project of the course is to build a TODO list application, where you can take the skills you have learnt and apply them in your own way.

The course was originally created around 2 years ago. Although it is still being maintained there are some things that have changed and/or improved. This can be quite challenging at times, as you try to navigate around things that don’t work the same way or no longer available. As part of the TODO list side project I decided to implement new versions of certain libraries and plugins (such as bootstrap, and password authentication) and this all formed part of the learning experience.

Rails Development

Ruby on Rails is a framework that is great for building database type applications that require the normal CRUD operations. It uses the MVC (Model, View, Controller) framework model and encourages TDD (Test Driven Development). I have really enjoyed the TDD model where you build tests for the application before you implement the functionality. This really gets you to think about how the application should and shouldn’t function. You are then able to constantly re-run your tests to ensure any changes you make does not break the expected behavior.

Ruby on Rails development works best on Linux (rather than Windows). All the course work is performed on a Cloud9 online IDE. Amazon recently purchased Cloud9 which requires you to create a AWS account to be able to use it. Setting up this new AWS environment was quite challenging as this was not covered in the course. In future I would like to explore how to setup Ruby on Rails on my local environment within a Linux VM.

AWS Cloud 9 IDE

For deploying the application I am using Heroku. Heroku is a cloud based platform for application deployment. You can setup a basic account on Heroku for free. The heroku servers are dynamic in that they will only startup as you use them. Hence when you access your application URL you receive a delay of a few seconds while the server starts up. Heroku allows a certain number of hours of “uptime” per month before you will need to start paying!

TODO list project

Basic features of the TODO list application include:

You can checkout further details on the TODO List project here (including a link to my github source)