Projects

Bazaar

MERN
Full Stack
Agile
Scrum
Team Git Workflow
Sass
Cloudinary

Group capstone. Collaborated with 7 people to create a fullstack e-commerce web app that let's users create shops and populate them with their products. Allows for uploading images using Cloudinary Js.

Front page of e-commerce, Bazaar.

Background/Description

Context: In our most recent project, a collaborative effort, our team was tasked with creating a full-stack MERN (MongoDB, Express, React, Node.js) application with user authentication, aiming to replicate the functionality of the popular online marketplace, Etsy. This project marked a significant shift from my previous experiences, as it involved working on a larger scale with a diverse group of teammates. While I had confidence in my group members’ abilities, I also acknowledged that this endeavor would bring forth new challenges associated with collaborative work, which none of us had encountered before. To contribute effectively to the project, I took on the role of GitHub Manager, responsible for overseeing the repository and GitHub team workflow – an aspect of development I hadn’t previously explored when working independently.

Process/Insights:

  • Team Collaboration Dynamics: Collaboratively, we conceptualized and outlined the project’s requirements. Early on, one of the key challenges we encountered was how to distribute tasks and allocate responsibilities among team members. To address this, we implemented a Scrum poker approach. This method involved collectively establishing a baseline and then anonymously assigning points to tasks, with more points indicating a more time-consuming task. This system helped us allocate work more efficiently.

  • Communication Enhancements: Effective communication emerged as an area in which we all had room for improvement compared to our prior solo development experiences. We recognized the importance of keeping everyone informed and ensuring synchronization among team members. To tackle this, we established a regular meeting schedule and conducted daily stand-up meetings. These stand-ups served as a platform for sharing our individual accomplishments, ongoing work, and any obstacles hindering progress.

  • Team Git Workflow Challenges: Managing the team’s Git workflow proved to be one of the most complex aspects of our project, especially during its initial stages. As the GitHub Manager, I simplified the workflow by creating an easy-to-follow diagram. This diagram aimed to ensure that everyone was on the same page and to minimize unnecessary conflicts that might otherwise have arisen. It was a crucial tool in streamlining our collaborative development process.

workflow diagram

  • State Management Challenges: We faced complexities in state management without the use of React’s context API, especially as the project grew. Due to time constraints, we opted not to rewrite the code with useContext and instead engaged in mob programming, harnessing collective efforts to overcome these challenges.

Key Takeaways

  • Experience with collaborative project, in all aspects of the development process (front-end, back-end, deployment)

  • Highlights the improved communication that is essential to a team environment ie. daily stand ups

  • Streamlines novel technologies such as Team Git Workflow to reduce conflicts and facilitate code integration

  • Recreates real-world work scenarios through end-to-end project development, spanning data architecture, UI design, and deployment in a team environment.


Projects