Ideabox With Sinatra
I made a decision to learn Sinatra before moving onto RoR. I chose it because it seemed simple, easy to learn and it was the one standing out other than rails (at least to me :D). I also thought learning it to a decent level would give me a good base which can help me learn RoR in a better way and of course to have a framework which I can be depended on.
And yeah, I found a good stream of tutorials aimed at Ruby, RoR and Sinatra at Jumpstart Lab. Out of those, since I wanted to learn Sinatra, I chose the IdeaBox one. I also thought I could learn some of Bootstrap on the way and used it as well.
Some things I learnt
I was able to complete the project to a decent level, with some of the additional features listed in there. The pay offs were so cool, and gave me a lot of experience.
My code is in here : https://github.com/LimeKin/ideabox
Sinatra is an awesome framework with minimal API. I was able to complete parts of the app really fast. It gives the developer lots of choices to customize the application through middlewares, templates, configurations and through two different application structures -- modular and classic.
Rack is the thing, I mean a Sinatra app can run on different servers, it's all because of Rack. Rack is an interface between web application frameworks and the servers. It provides lots of handy middlewares and it's easy to create one.
Haml surprised me, really. Although I had some troubles here and there when I started to use it instead of the standard Erb, getting familiar with it helped me write the front-end scripts along with the HTML really fast and well. After I replaced all my erb code I was surprised how short it became.
GitHub and Git , I understood that both of them together is a core tool for any ruby developer. Thanks to GitHub, I got to read both Sinatra and Rack sources in there and Git, I could follow a step wise development and making it fun.
Bootstrap helped me do all the looks for the site. It's so fun and simple to follow, and provides really good set of front-end elements.
Oh yeah I have just started, and I'm sure there is a lot more than what I have learned by doing IdeaBox with all these tools and frameworks. I'm excited about learning more of them, so I will share more posts on them as I learn more. :)