Phase 3: Getting to Know Ruby

Studying for Phase 3, February 2022

Weekly Update

This past week at Flatiron School, I finally completed Phase 3 of my program, onto Phase 4. This means that not only am I more than halfway finished with my software engineering program, but the job search is readily approaching and my career is truly about to get started. Now, while I am nervous I’m also super excited for all the opportunities that will come available and to gain practice and knowledge during this interview process.

To be honest, this phase was pretty rough, learning Ruby and Sinatra were not second nature. It was a lot harder at the beginning Than javascript only because I felt like I had not enough time to prepare to immerse myself into all that Ruby was. With that being said I feel a lot better now, especially after our code challenge, those are always able to boost my confidence a little bit. I know that moving forward to make myself better at Ruby it’s going to be a lot more reps of doing projects. During this phase, I was able to have some of my very first few interviews and though they were nerve-racking I feel more prepared going into the future with other ones. During these next two phases of a flatiron, I’m going to try to learn as much as I can about data structures and algorithms, that way when I leave the program I’ll have a pretty solid foundation upon those technical interview questions. Regardless I am actually happy with the process and I’m trusting, my cohort, my instructor, and mostly — myself, to fully prepare to immerse myself for the road ahead.

Practice Makes Perfect

This past week, my partner Vivian and I were tasked to complete a project we dubbed “Oishii Me Up.” This project is a tinder-based food application that essentially bridges my gap between Front-End and Back-End development. We built the frontend with HTML, CSS, ReactJS, and Javascript. The backend was built with Ruby and Sinatra. It was my first full-stack application so I was immensely excited and proud of the result. Here are the requirements for our project that we were tasked beginning of the week. We were given roughly one week to complete all of these deliverables and submit a project.

Requirements

  1. Use Active Record to interact with a database.
  2. Have a minimum of two models with a one-to-many relationship.
  3. Create API routes in Sinatra that handle at least three different CRUD actions for at least one of your Active Record models.
  4. Build a separate React frontend application that interacts with the API to perform CRUD actions.
  5. Use good OO design patterns. You should have separate classes for each of your models, and create an instance and class methods as necessary. For example, build a todo list application with a React frontend interface and a Sinatra backend API, where a user can:
  • Create a new todo
  • Read a list of all todos
  • Update an individual todo
  • Delete a todo

A Todo can be tagged with a Category, so that each todo belongs to a category and each category has many todos.

Project Pitch and Entity Model for Phase 4, February 2022

The first thing that we had to do was create a entity model diagram and also a component tree that way we could know moving forward what exactly we’re gonna do. One difference that we did in this project from previous ones was create two different repositories: a backend and a frontend. Where we started was with the backend repository, because we knew that starting with the backend would lead us more time to practice the newer information. With less time, the project will still succeed because frontend will not require that much time, due to our repetitive practice with react.

Oishii Me Up only needed certain amount of functionality: creating an array of numerous foods, being able to navigate through the array, like one item and add it to a list of your own liked items, delete an item, go back to view an item that you’ve already seen, and lastly filter through the items by there different cuisine categories. If you were lucky enough to read my last project blog post, Then you would realize that the functionality here is very similar with the achieveIt application. So there wasn’t really anything drastically changing in the front end that we had to worry about. Below I was able to also able to add a navigation bar between all of the different organized routes using ReactJS NavLinks.

The Navigation Bar, done with ReactJS, February 2022

The Backend

Connecting the models and controllers in the back and was the biggest task that we had ahead of us. Besides this, I also wanted to add a map that could be used to view the location of that the restaurant per each item. Unfortunately, at the end of the project I was not able to get a marker on the map to indicate where exactly the restaurant was, but after a long period of trial and error I was atleast fortunate to get the map up on the website. This is awesome, as I was able to implement the same functionality into my newest project which was a portfolio of all my other projects for myself!

Below you can find some of the seed data that we wrote when creating this website.

Seeding the data in the backend, February 2022

Overall, this was a very long 3 weeks of learning Ruby, I’m excited for the knowledge to come in the coming weeks with Ruby on Rails and Redux. This post wasn’t too long nor technical, but I hope you still enjoyed the quick journey of Oishii Me Up. I guess you can call me, Ilolo Izu, Full-Stack Software Engineer now! If you want to learn more, there's a YouTube video linked below!

The Final Product, Oishii Me Up, February 2022

Here is a video of the final and most up to date version of my application, Oishii Me Up:

--

--

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
Ilolo Izu

Ilolo Izu

Software Engineering Student | From healthcare👨🏾‍⚕️🩺. to tech👨🏾‍💻 | Advocating for Minorities in STEM | Track & Field World Record Holder