Finishing Lambda School: Labs, The Final Stretch
Published: 2021-03-04 14:33:42

## The Idea

For Labs, typically a group will work with a nonprofit organization or local business to create a product that they can use. However, our group was tasked with a project a bit different. We worked internally with stakeholders from Lambda School to develop an MVP of the Lambda Alumni Network. The goal of this assignment was to create a unified, private community for Lambda School alumni to connect, advance their careers, and give back in a forum-like environment. 

When we first started this project, we began with a code repository that was built for a single room forum where people could post interview questions. The ultimate goal was to create multiple rooms, so posts could be categorized into different topics. This meant restructuring the database to include a number of different data points, including rooms, posts, comments, likes, and users. Making sure to restructure any of the existing endpoints and adding all the new endpoints we would need proved to be one of the most tedious parts of the project.

Here's what the project currently looks like: 
![Main Dashboard of Lambda Alumni Network](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vio8gjdqwk5nud6d5w1f.png)

![Single Room Dashboard Displaying Posts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwh6o3iuzu0ar02ley6p.png)

![Single Post With Comments](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwh6o3iuzu0ar02ley6p.png)

## The Build

There were a number of different things that needed to be done to this project on top of restructuring the database. The entire frontend needed to be restyled to the standards of our design manager, and we also needed to create at least 25 more React components to hold all of the new sections we were adding to the app. Some of the main things that I focused on was that database restructuring from earlier, but also creating endpoints on the frontend so we could make sure there were connections to the backend. I also worked on setting up the deployment environment of the app with Heroku and AWS Amplify. 

The one thing that I worked on that I enjoyed the most during this project was adding notifications to the project. The stakeholder wanted the tone of the app to be welcoming to any alum that joined the platform, so I worked to make sure the copy of notifications had the correct emotion. We used [react-hot-toast](https://www.npmjs.com/package/react-hot-toast) to add notifications to the project. Even though this was a relatively straightforward, the notifications add so much to the project and I'm really happy I was able to work with them.

![react-hot-toast notifications](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rbrdfdbgrls8feoh2byj.png)

## Current State
We spent four weeks building this project, and we added so many features it's hard to keep track. Some of the different elements that our team created for the Lambda Alumni Network were: 
- Multiple Rooms for Dedicated Topics
- Users Can Comment on Others' Posts
- Users Can Like Others' Posts and Comments
- Users Can Delete Their Own Posts and Comments
- Users Can Flag Others' Posts and Comments
- Admin Can Create, Update, and Delete Rooms
- Admin Can Create, Update, and Delete Users
- Moderators Can Archive Users' Posts and Comments
- Users Can Update Their Profile
There was a lot of time spent building different pieces of the puzzle to make all of these features come to life and work together, and this short list doesn't begin to describe the early mornings and long nights that my team put in to bring the app to the point it is today.

## Future Builders
In the future, I can see another Lambda School Labs team taking this project even further. Since we were given a project that was close to greenfield, we spent a lot of time adding different things to push us towards an MVP. Now that our team has laid the foundation, I hope the next group can start to implement some features that we had thought of but did not get to do. An important step would be to implement tagging into the app and then allowing users to search by tags, so that posts are easily searchable. I also think adding some UI features could help bring the app to life even more, like a notifications bell. Finally, I think adding a light mode and mobile breakpoints to the app would be a great improvement that would help with the overall accessibility and usability of the product. 

## Final Thoughts
Throughout my time at Lambda School, we have spent one week every month working on a project. Labs was similar to this, multiplied by four. I feel that working on this project with an extremely hardworking team has given me a glimpse into what it will be like to work at a firm in the near future. I was able to work on a project that I really enjoyed and I think will benefit a large number of people in the future, and that is what I hope to do for the rest of my life.