Coding Road Trip Anyone?

Brian Marshall
8 min readMar 3, 2021

Part 1
I enrolled in a 9 month Online Web Development Coding Academy. 9 months turned into 18 and 18 turned into 24. Front end, Back end, Computer Science, and 23 months later we have been given one last project before we are to graduate and seek endorsement. This was to be an 8 week journey called “Labs” in which we would be utilizing everything we’ve learned to create something truly magnificent. This was what I had heard by others who had come before me as I hurtled towards this final destination. I type this now having been through most of Labs, and I have to say, they lied worse than the last person to have called New Jersey “lovely”.

For the five people who read this, I’d like to preference the following entry with a quote: “There is no growth in comfort, and there is no comfort in growth”…Hence why I now have scoliosis.
To navigate this scoliosis journey we were given directions from a 2002 mapquest website. We had to create a merchant market app that allowed sellers to sell their goods online and be shipped to a brick and mortar location for COVID safe curbside pickup. This app also needed a space to allow buyers to purchase these goods in an organized and user-friendly manner.
We were given a variety of tools to get to our destination alive and in one or more pieces. Some of these tools we had seen before, some we had to learn not to stab ourselves with, causing hours of debugging. On the front end, we used AWS to deploy our sites. We may have cut ourselves on this one because we had no experience and had never used Amazon to host anything. I wish we had a little more training in how to properly utilize this amazing possibility before we locked ourselves out. Like being locked out of the Archives, we could only imagine what knowledge laid on the other side. We did get it deployed, and within our React app was an infusion of Okta authentication, redux, and the React Ui we loved to hate: Ant Design. Ant Design was another sharp object we didnt know how to use. The back end of our app was deployed using fan favorite Heroku, and contained a cocktail consisting of Node, Postgres, Okta authentication, all topped with some ElephantSQL. When you combine the front end and back end, we got one hell of a strong drink. Its side effects have been known to cause two hour headaches and the feeling that you’re as useful as an infomercial “beforehand” actor.
Allow me to try and describe the taste. When I first received my instructions for this project I thought this was going to be alot to code and I hoped I was going to have enough time to finish. What my team and I received was a functioning marketplace app. What? It’s already done for us? It’s like someone cheated for us and coded everything ahead of time. All my other projects had to be created from scratch. This was going to be so easy. We could just add some advanced features and be done. How is this going to last us 8 weeks? 6 weeks later, all I think is “YOU FOOL” How was I bamboozled so completely? How could anyone think Connecticut has good drivers? Can confirm, they dont and this project was the farthest thing from a Sunday morning drive. We wanted to add a shopping cart feature for the buyer as well as enhance their dashboard providing them with a plethora of items to choose from instead of just various seller profiles that we inherited. This is how that went.

Part 2
We hopped right on the struggle bus from day one. I think it took us, as a group, 3 days to get our project functioning at the level the last group supposedly left it. To try and put this in perspective. It was like walking into a new job as a jr. developer, and Bill Lumbergh says, “hey all the other developers quite last week and left you a few comments in the code. I need you to maintain it and add features to it. If you have any questions, you’ll have to ask somebody else because anyone who wrote the code is gone.” And to be fair it was 3 days with random mandatory class lectures thrown in there. Once we got to a decent understanding of this boemith code, we needed to see the actual backend data. Myself and another developer were going to run the backend. But first we needed to see the tables and seeds in a database. The database was in Postgres. Hmm okay, one of the sharp objects. It was very unfortunate for our sliced up hands that we were not given a lecture on how to utilize Poststress, I mean Postgres. We just had to figure it out. We also had to figure out the extent the last group actually used it. This took us another 3 days and it turns out the previous cohort used ElephantSQL to view their databases, not Postgres. Once we were able to see the data, it was off to the races creating a shopping cart and favorites table and seed data. These favorites feature would allow the buyer to favorite an item if they weren’t ready to purchase it. If they were ready, the shopping cart feature enabled the user to do so. The cart table would also be able to save the information for them over multiple sessions if they were having any commitment issues. Speaking of issues, I then ran into one with testing the endpoints. We had Okta authentication and the middleware prevented simple testing to see if we had created our join tables correctly. I had to relearn how to use join tables as none of my previous projects had I needed to combine so many tables into one. I watched online tutorials, read blogs/articles, read Knex documentation, and did some peer programming. The combination eventually led us to create proper join tables and allow us to see the endpoints despite not having the frontend feature set up for authentication. This is what our join tables ended up looking like:

We were very excited to present a completed backend to our team. We told the frontend we were ready for their features to be implemented. Instead of being held up on the shoulders of Roman patrons like the Gladiators we clearly were, we were told it would be more efficient to just control state on the front end. This was where a part of me wished I had died in the arena. One of our front end developers explained it was too costly to have to make api calls every time the user wanted to fetch an item. He was right. Despite all the effort and work I had just put into the backend, this was the best decision for the project and team. So I didn’t object though that night, I may have cried enough gypsy tears to satisfy Borat.
We also had found out that we weren’t going to have the entire 8 weeks to code this project. About 5 weeks in we found out we had about 3 classes left to polish this up. Our frontend needed a serious facelift. It looked like it had been using its front teeth to open bottles for the better part of its existence. Although I wasn’t supposed to be on front end, I jumped in to help get us where we needed to while our lead front end developer finished up the shopping cart feature he had been promising would be finished. I took on the routes and headings. The previous group only had the log out button on the main page, routes were going to dead ends, some routes wouldn’t allow you back to the main page, some you could only see the buyer options when you needed the sellers and vice-versa. It had a purple background with red links…I know, it looked like Florida feels in August. Here is a quick GIF of what it looked like after that facelift

Part 3
When it was all said and done we had beautiful working headings, added a buyer page with room to expand into a buyers dashboard, full backend support for shopping cart and favorites features, and a fully functional shopping cart attribute spanning across multiple pages and profiles. We also cleaned up some of the code itself and will continue to try and better document what is going on. The previous cohort gave us some but like I said earlier, its like they all quit and we just had to pick it up and figure out how it worked so we didn’t blow off our hands when we lit it.
A couple of things I would like to see in the future would be a more fuller implementation of the tag features. This would require the buyer dashboard to be built out displaying item cards the sellers have for sale. I would also like to see the favorites functionality implemented and connect to the backend. I can see it being a challenge for the next group to figure out how to properly utilize the back end api without it costing too much. We would need another week or so to just slim that down and refine that. We shall see what the next cohort decides. One thing is for sure, I’d like to leave them a few tips. Starting with Bill Lumbergh sucks, and ending with how I started this: There is no comfort in growth, and there is no growth in comfort.

There is no triumph without adversity. At the end of the day, its all part of the experience. Despite some of the things I worked hard on, not getting implemented, I learned alot. And all the while my skills on how to research and learn or relearn information, grew tremendously. This project was the first time in my web development education I had to look at someone else code and improve and/or fix it. I know this is closer to what developers do in the real world. I can’t tell you how many times I thought, if this is what they actually do, I don’t think I want to do this for a living. But by the end our project felt like your second car. It looks better than the first one, a little more reliable, still a few things broken, a few years of miles on it, nothing you’d show off, but you beam with pride when you realize it got you through your road trip, and you wouldnt trade it for the world… I mean sure, mapquest got you lost in NJ and it broke down in CT. where instead of people slowing down to help you they just flipped you off on i-95 for slowing them down. And okay, the AC may have broke when you hit Florida in August, causing the emo kid in the back’s eyeshadow to run. But you and your road-tripping allies fixed it every time. The car, like the journey and everything learned along the way, belongs solely to you. I am grateful that I have become a better developer for the long nights of troubleshooting and debugging foreign code. I am a better developer for the communication, sacrifices, and work put in with a group of 4 other people whom I’d be proud to call friends, but would never, ever, take a road trip with.

--

--