Sin Wildy
3 min readFeb 2, 2021

Flatiron School Software Engineering Course in Seattle

Phrase 1 Project

During week 3 of the 15 week course, the class was given the choice to either complete a Data Analytics Project or a Command Line CRUD app. After thoroughly mulling it over, my partner and I decided that although the Data Analytics Project seemed pretty cool, we were more interested in creating the Command Line CRUD app. For me, I chose the Command Line CRUD app over Data Analytics Project, because I wanted the opportunity to play around with data, this options allowed me as a potential user to manipulate data that is inputted by myself and others, and to manipulate stored data in the database, in this case the seed.rb file.

After some serious brainstorming sessions, the project idea was proposed to the instructors. Due to the complexity and time constraint, we had to abandon a lot of the user stories we wanted to include. As a team of 2, we decided that we are going to develop an app called Happy Pet. For most humans, their pet is their life, their family, the one they spoil. Happy Pet app is designed for pet lovers, a digital app to help owners manage and spoil their pets.

The aim of this project is to allow users to have the full CRUD ability, the ability to login and have the option to view and manage their pet(s) and routine(s). Users can add new pet(s), view all their pet(s), view their pets routine(s), add new routine(s) for each pet, edit/update the routine(s) for each pet, delete routine(s) for each pet, and update the status to complete when the routine(s) is completed on a daily basis.

In hindsight the project covered the following user stories:-

  • As a user, I want to be able to enter my name to retrieve my pet(s) records
  • As a user, I want to be able to add a new pet(s) and new routine(s) for that particular pet
  • As a user, I want to be able to retrieve a list of routine(s) for each pet
  • As a user, I want to be able to edit an existing routine(s) for a particular pet
  • As a user, I want to be able to delete an existing routine(s) for a particular pet
  • As a user, I want to be able to select an existing routine(s) and change the status to complete, in order to display the current incomplete routine count

If you are interested to view my amazing project, please visit my GitHub repositories:- https://github.com/urbanemotions/ruby-project-guidelines

This project allowed me to have the opportunity to work with others, view coding styles different to my own, and understand the thought process behind each line of code. We attempted to execute the best practice, at least what we thought was the best practice of our three models, code layout, usage of different classes and methods.

Obviously with every thing we do in life, difficulties will exist. My partner and I did spend a lot of time drawing and redrawing the models until it finally made sense to us. Even with that, there was still a lot of self doubt as to what direction our project is going and if the design and code is going towards the correct finish line. One of the main things I have learnt is to really think about breaking down code into different methods and consider how to ensure that the code would look neater and cleaner. As a self proclaim messy coder, I have learnt a lot from my partner in crime, mainly how to compact and use shorter lines of code to do exactly the same thing. I did spent a lot of time comparing the code to understand why it would be better to write the code in a certain way.

Another memorable difficulty was that we had to work on different branches. For other labs, I was so used to using the master that when it came to having to use branches, I ran into difficulties, obvious difficulties, such as did not run ‘rake db:migrate’. ‘rake db:migrate’ is the migration I constantly forgot to run, which wasted a lot time. I also experienced a lot of version issues, when trying to commit my work and had to ask others for advice. I appreciated the times when I did not run into these issues mainly because I was working on a solo piece, and I understand that in the future if I was to work in tech, there will always be other SDE working on different branches, so i guess I better remember ‘rake db:migrate’.