My first Rails application

For our third portfolio project as a part-time software engineering student at Flatiron School, my classmates and I were required to build a full web application from scratch using Ruby on Rails. I built a Yoga studio/community website called Flow.

“Flow” landing page

I was inspired to build this app because I have been practicing Yoga for many years now. I wanted to use this passion as vehicle to build an app that I was proud of, and that I could push myself with. “Flow” is designed as a website that can display all the information that a real-world Yoga studio would need, such as courses with prices, times, and dates.

It also is designed to bring together a community, and give users a place to talk and share experiences, with profile pages for students and teachers.

An example of a Student Profile page

One of the main goals I wanted to teach myself about was how to alias my User model for different roles. This proved to be more of a challenge than I anticipated! I wanted to have a single login, and maintain RESTfull conventions while giving separate user experiences for a student, teacher, or admin. I could probably write an entire article on just this, and if I do I will link it here! For now, here's a snippet of my User model associations:

My User model associations

In order to achieve this, it was essential to plan out my models and associations beforehand. I used an integrated extension for VSCode, which is an awesome planning tool. Here is a snippet of my plan: plan

I am proud of how my app came out! I learned a ton about using Rails helpers, partials, filters, and building complicated models. I found adding ActiveStorage to be almost painless in comparison to adding CarrierWave to my Sinatra app on my previous project. Overall I found Rails to be an extremely powerful framework and I feel confident in my abilities to develop using it after building this app!



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Zac Flynn

Zac Flynn

Full Stack Web Developer and Bassist based in Longmont, Co