Roof Rack Configurator Project: or how I learned to stop worrying and love the learning curve.

Well, that’s not entirely true. But so far, this project has had the single steepest learning curve in my time in Oregon State’s CS program. Previous projects posed tremendous challenges – I’m looking at YOU, “smallsh”, but they tended to be confined to a set of established tools for a well-defined task. We weren’t inventing something new. I’m sure I was the millionth CS student to build a bash shell program in C.

The roof rack configurator is something new. Perhaps this is real software engineering? In industry, no one would likely hand-code a shell, a graph traversal algorithm, or a CRUD app without using existing libraries. The roof rack configurator will let potential buyers design their own rack by dragging and dropping things like solar panels, fans, AC units, cross-bars, and more.

Speaking of libraries, we looked at a few to provide the backbone of this technology, and settled on one that uses React. We can’t share more due to confidentiality concerns. What I will share, is that I’m brand-new to React as well as this library!

Actual footage of me learning React

I was mostly learning in the the first couple of weeks, testing out small code pushes and asking ChatGPT for advice dozens of times and for code skeletons I could play around with. My major contribution to the team very early on was creating a very detailed business logic diagram and getting the client’s input. Finally pushing some key functionality for the app felt cathartic. The gist of this feature was to dynamically build the rack based on previous user selections based on model and size, all while making it look nice on smaller screens.

Back to the learning curve…our app has to integrate with an existing Shopify store. Shopify has their own Hydrogen and Oxygen frameworks. Massive leaning curve continues. It’s fun to learn new tools, but we have to ship a good product in a single class quarter. However, this is a key requirement since the company’s products are hosted on Shopify.

The team has collaborated well. One of us has some experience with React, and we’ve all contributed to the code base. It helps that we’ve all gotten decent with git, and tend to get our pull requests merged pretty quickly. Personally, being 10 hours ahead of the team has been tough, but my evenings overlap with their mornings at least.

The project seems to be going well, but time is short. We built the racks and some products into the configuator, and have begun to integrate into Shopify. The 2nd half of the project will cover 2 main objectives:

  1. Complete Shopify integration, with some client ability to add and tweak basic roof products to the configurator.
  2. Account for the complexities of the physical product. Cross-bar placements vary by van rack, some vans have roof ribs that must be worked around, and there are exclusion zones for some items on certain racks.

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *