02

AvoCart

A smart shopping list that learns your buying habits and helps you remember what you need to buy on your next trip to the store.

My role

Member of the developer team along with Abby Benjamin, Caitlin Floyd, Karan Katoch

Stack

ReactFirebaseMaterial UIStyled Components

Why I built it

This project was built during my internship at The Collab Lab, an organization that helps early-career developers gain practical experience through working on real-life projects. The main focus of this project was on collaboration within a remote developer team, technical communication, and the Agile approach to software development.

Stack choice

We used Firebase to store the list data on the backend. The frontend was built with React because it allowed us to easily track the state of individual items on the list. React Hooks also made it easy to interact with the database. We chose to style our app with Material UI to take advantage of its ready-to-use components; for the components that weren’t a part of Material UI, we used Styled Components for flexible styling and animation.

AvoCart project screenshot
AvoCart project screenshot
AvoCart project screenshot
AvoCart project screenshot

Challenges

A large part of this project involved operations with dates: displaying dates, sorting dates, using dates in calculations. The dates that we used across the project came in different formats: objects in Firebase, values in milliseconds in some functions, values in days in others. This created a level of complexity that we hadn't anticipated but were able to solve with a combination of plain math and a library that unified formats and simplified the calculations.

Lessons learned

Since the main focus of this project was on collaboration, I’ve learned how to be a productive and supportive member of a developer team. We utilized such Agile practices as weekly demos and retros, pair programming, code reviews. Through these experiences, I’ve learned to communicate technical problems and solutions. I’ve also gained experience with a NoSQL database through using Firebase.