CUNYCodes and Working With MERN Stack : Serve+ and the Finale

Sashary Morel
7 min readMay 5, 2018

--

CunyCODES 2018 Team Photo — Serve+

If you haven’t seen the previous post, it talks about the start of my journey in CUNYCodes and the first month of the program. This post will elaborate on the rest of the program and the final presentation day.

In my last post, I talked about my initial experience with trying to get into CUNYCodes, the struggle my team had initially, and the people that dropped out. Well, during the halfway point of the program, more people did end up leaving, but teams were actually finding their groove and figuring out who was going to stay long term. Some teams suffered huge losses by the end (If I recall correctly, one team had only 3 or 4 people from their initial 8), while others ended up having 1 or 2 leave at most. My team suffered a total of 3 losses, but that didn’t really impact us as hard as I had initially thought.

I’ll add in a sidenote before I talk about the MERN stack. Originally, my team went through 2 weeks trying to figure out what we wanted to do. We went from NodeJS and using Handlebars, to looking at the MEAN stack, to even ignoring these stacks and trying to go pure NodeJS with random modules. Needless to say, we stuck with the MERN stack which was what we initially looked at.

So lets talk about the MERN stack (MongoDB, Express, React, and NodeJS). As I said before and put a lot of emphasis on, my team had zero experience with MERN and how it worked. There was not a single day that my team didn’t struggle while using this stack, with the main culprit being React. React is an extremely useful front-end framework that allowed my team to be able to interact with front and backend communications, but to say the learning curve is massive is an understatement. To put it simply, this stack is not something you should pick up if you’re not committed to learning at a constant pace. However, don’t let that scare you — the long term benefit from learning this is that all these components are becoming industry standard, and the last thing a website developer wants is to miss out on a job or position because they aren’t keeping up with the new tech.

So back to my team and this stack — Our idea was simple, albeit the execution was a bit hard for us being beginners. We wanted to create a RESTful API in which the front end can send HTTP requests to the backend, and the backend would then send information back to the front end. Here’s an example of how I ended up deciding the flow of information with a GET request:

  1. (React, Front End) Axios sends a GET request to the server with information
  2. (Express, Back End) Server receives GET request and the information provided
  3. Server calls MongoDB to request information, while plugging in the information provided
  4. MongoDB returns data, be it an error message or the data the Component needs
  5. Server returns the data back to Axios with a status (200 OK, 401 unauthorized, etc)
  6. (React, Front End) Axios receives the data

I want to say this was simple and didn’t take my team a lot of time, but it was the complete opposite. We spent the entire first half of the program working on a login and registration system as a way to learn about the stack. During the process, many of us admitted that we were on the verge of quitting, but nevertheless we continued onward. Once my team and I understood the flow with MERN and how each part worked, our progress skyrocketed on a weekly basis. I think PivotalTracker showed an extremely interesting story with our project.

Our weekly sprints, which we began documenting early March

During the weeks of the program, we saw various people from the industry come and talk to us, ranging from Beth Spektor who talked to us about the importance of a resume, our mentor Gregrian Vassell who made sure we knew every aspect about SCRUM, and even Ayanna Kerrison who taught us how we should present our project and speak to our audience. I can’t overstate how many of the things I learned in this program have helped me grow exponentially as a developer and even raised my value as a possible employee.

Now lets fast forward to the last 2 weeks. May 2nd is the set day in which we have to present, and from the looks of it, everyone in the program is either stressed about meeting their deadlines or extremely confident they’ll be able to figure everything out. My team fell in the stressed out part — we were too behind due to our initial struggles. I was personally stressed because most of the backend work fell on me, since the rest of my team had to make sure that the components in the front were functioning correctly. Meanwhile, Ayanna Kerrison came to our program and began prepping us to present since it was getting closer and closer to presentation night. We spent the last 2 weeks doing nothing but presenting : We created and fixed our powerpoints based on feedback, made sure things were deployed in AWS or whichever environment we would present our work in, and figured out who would say what during the presentation. (This is a good time to give a huge thanks to Mohamed from the CUNYCodes program for this nice tutorial : Uploading files from a React app to AWS S3 the right way and a youtuber named Keith which helped me get my MERN program up and running in AWS.

So now I’ll fast-forward again to the weekend before presentation. Remember the 20 points in that screenshot? That was done during the span of 3 days. My team and I were completely behind, our major function which was a receipt that would list tables was not completed, and our widget function didn’t display the items and category of a menu. Sunday was the day which the entire program would seize coding to make sure everything worked and did not break in the last minute. So I spent Friday, Saturday, and Sunday coding from morning to night. I spent around ~30 hours in total coding in those 3 days. A lot of circumstances happened which caused things to be delayed to that state, but I don’t regret doing it. My team and I managed to get a working product in a state that was presentable.

The weekend concludes and Monday comes. This is our final rehearsal before Wednesday May 2nd. Our team presents and we get some last minute feedback. Tuesday comes around and I deploy the working version of our project to AWS. My team and I also do some last minute prepping in Discord where we decided to hold our conversations.

Mentors and Students prepping — Photo by Shylah Banach-Chiera

Now the day arrives, Wednesday May 2nd. I personally had to deal with something in the morning, and once I was finished I went straight to the location where it would be held. My team got there around 4–5pm and we gave in our slideshows and told the mentors how we would present. After that, our team ended up practicing 5 times in various different rooms. We were all nervous because we wanted our 12 weeks of work to show itself correctly through our presentation.

We were the 8th team that had to present for that day. After 2 hours of teams presenting, it was finally our turn. I’m glad to say things went extremely well for us (except we went overtime, oops). We were able to clearly give our thoughts, and the demo I was in charge of worked out extremely well in the tablet and the desktop version of the program. No major hiccups occurred, and we were also able to answer the questions the audience member gave. A sense of relief came over me, and I was extremely happy since 12 weeks of hard work had finally come to fruition.

And so, that marked the end of the Spring 2018 program. My team and I ended up spending a good 10 minutes reflecting on the program after the end, and we were all generally relieved things went well and that it was over. I went home exhausted, caught up in LinkedIn with doing some last minute changes, played some games, and went to bed.

CUNYCodes Spring 2018 Final Group photo — Photo by Hernan Pesantez

As of writing this blog post, it has been 3 days since the program ended. The effects of the program have already began showing to me, since it has allowed me to enter an application process (and go pretty far with it!) for an internship at an extremely great company which deals mostly with website development. If you’re reading this and wondering if this is a program you want to join — Do it. You’ll learn things that college simply won’t teach you, and the amount of opportunities it will provide you after you are finished are immense for a program that’s only 12 weeks long.

Links

Previous Post:
https://medium.com/the-breakpoint/freelancing-cunycodes-and-working-with-mern-stack-introduction-38cb38517f46

Serve+ Photo Source:
https://www.linkedin.com/feed/update/urn:li:activity:6397577207501320192/

Prepping Photo Source:
https://www.linkedin.com/feed/update/urn:li:activity:6397565420190072832/

Group Photo Source: https://www.linkedin.com/feed/update/urn:li:activity:6398144762972504065

--

--