Blog / experience
user photo

The making of Foodie experience

Published on
· 5 min read
experience

My third full-stack web application. It went by a lot smoother than my previous projects since I have little bit more experience. This was a team project with three other people who had experience in of full-stack development.

Smoothest development

Most of the technology is something we used before

Like all of my projects at App Academy, they were hosted on Heroku using a Docker Container. Front-end was developed in JavaScript, React, and Semantic UI; back-end was made with Python, Flask Login and SQL Alchemy; databases created with PostgreSQL. This was the first project I've made using Python, and it's pretty easy to pick up since I've learned other programming languages before and have a foundation of computer science. i know how this works We were able to complete a project that allows us to create users, sign in, view restaurants, favorite them, reserve seats, write reviews, search up restaurants by location, edit their profile page and earn points. My main role was developing the presentation and optimization for the site, but I also communicated with my peers when there were authentication or database blockers.

Using React hooks

The are so many different hooks and from many different React packages. I found this a lot easier to manage state than using the traditional Redux method. React hooks allowed me to use setState and life cycle methods which weren't orignally on functional React components.

import { useEffect, useState } from 'react'
import { useSelector } from 'react-redux'
import { useHistory } from 'react-router-dom';

We are senior level developers curriculum-wise

After putting an end to the first solo project chapter of my software engineering journey, it is time for me to revisit working as a team, but this time it was in a group of 4. My team decided to clone OpenTable.com which is a place on the web where we can reserve seats at a restaurant.

We're not coming in fresh but we have built a couple of projects before, one of them by ourselves which was a huge struggle probably where most of us felt the feeling of imposter syndrome. Compared to our level of understanding about Git and authentication on my first group project, we would be senior level developers. Knowing how to collaborate correctly in Git and avoiding merge conflicts was one our hurdles in the previous group project, but we've already been through that so now Git is an invaluable asset.

Things were so chill, it had me worried

The development of this project went by so smoothly, that something felt off. In programming, we expect things to always go wrong and it is true that things went wrong all the time, but we were just more capable of conquering most of our obstacles. We were all hard workers, and stress was relatively low compared to my last two projects which gave me the illusion that I was slacking off. a lady looking worried with hands over her face Software development is supposed to go smoothly and the bugs we encounter aren't going to cause a disasters. The challenges we faced were things we've seen before in our previous projects and probably needed to challenge ourselves more.

I'm still the go-to guy for styling

Just like on my first group project, I've had people asking me for styling advice after they’ve made their programming logic. She already created the components without any CSS and wanted to learn how to style it better. I didn’t want to disturb my other colleagues while they were working, so I decided to move to an empty room where me and my teammate could exchange our thoughts freely.

Semantic UI conflict?

Nobody here knew how to Semantic UI at the time, even though I thought it was easy to use once you start making components with it. One of my teammates was against it and switched back to Material UI. I was able to convince everyone to use Semantic UI because of how similar it was to the website we were trying to clone. One thing that is quite different from most other UI libraries is how to get the value of Semantic UI components, we had to pass in a 2nd argument and use it, instead of the 1st.

Cleaning our project

The rest of my team ended up tweaking some of the components that I’ve made so they can learn how to style and improve the project. I decided to work on the RestaurantProfile page and the Review/Ratings component on the last days of the project because I liked Semantic UI and I had a lot of fun working on this project.

Conclusion

You may view this project live on this https://foodie0520.herokuapp.com if you haven't seen it yet. It took us a whole morning to figure out how to host this.

The main highlight of working on this project is how far we grew as software developers and how well we worked together. The more projects we work on, the easier working on future projects will be. We actually got all of our 7 or so MVPs completed and worked on the bonus feature which was to have a point system for reserving seats. Each of us were focused on specific parts of the project and got our tasks completed. I am very proud of how fast the app runs and how short the asynchronous fetches are, that it seems unnatural. It loads faster than any of my solo projects.