Learning Through Doing — Rails, OmniAuth, Bootstrap

This week I built an app that allows tutors to post their availability for tutoring sessions, and lets students book sessions according to each tutor’s posted availability. The process of building out the app was a lot more fun than I anticipated, mainly because I used 3 app-building tools that lightened my load and allowed me to focus on the ‘what’ of the app rather than sinking hours into the ‘how’. Those 3 tools are: Rails, Omniauth, and Bootstrap.

Rails makes building MVC frameworks frighteningly easy. The generators are super handy for setting up models, migrations, and controllers (although they sometimes come with a bunch of extra stuff that I didn’t need). Rails also comes packed with macros to authenticate users, and it makes interacting with your database very intuitive and straightforward. As far as getting the project off the ground goes — Rails easily saved me a day’s worth of work (compared to Sinatra).

Omniauth makes your project feel way more legit and makes it a lot more accessible. Not only that, it can even make a project more secure. It basically allowed me to outsource the protection of user info to Facebook (that is, if the user decided to log in through Facebook). Omniauth seems super complicated at first glance, but once you implement it, at the very least you understand the redirect and callback process in place (and to me that’s all that really matters). I don’t have to know exactly how Facebook handles users info, I just have to know that it isn’t easy for nefarious operators to steal emails and passwords from Facebook.

Bootstrap — the most popular styling framework on the web. I loved using Bootstrap. Like Omniauth, it took very little work to make the project way more compelling. I did make the mistake of implementing bootstrap halfway through the build which made it a little trickier to stay consistent with how I was styling everything. If I had started from the get go with Bootstrap in mind I would have had a way easier time keeping the styling consistent and neat. If I had implemented Bootstrap at the end I would have really been kicking myself. I would definitely recommend Bootstrap, and I would definitely recommend starting the build with Bootstrap in mind. I’ll definitely be using it again in the future.

Bootstrap came with a handy-dandy datetime picker that looks really pro and is super simple to use. This came in handy big time for my project, as tutors have to declare their availability for a tutoring session with a date, time, and duration. I sunk a lot of time searching around for gems to use alongside Bootstrap for the datetime picker — DON’T WASTE YOUR TIME! Just use Bootstrap 4’s built in datetime picker.

Looking forward to the next project!