CAT 3D Marketplace Prototype



Background & Purpose



This project was through Bradley University, part of my CS 390: Intro to Software Engineering course in conjunction with Georgia-Tech and Caterpillar, Inc. The development of the project was concurrent with class deliverables, lectures learning about SDLC models and best practices, and creating project documents. I was part of a small team which was focused on developing the login system for the website, connecting it to a MongoDB collection, and building out the front-end.


The purpose of the project was to work with Caterpillar Inc. to create a prototype website where 3D printed concrete houses could be viewed, customized, and sold to users all online. This would have vendor login functionality where suppliers and operators could opt-in to be automatically selected when a user in their area purchases a housing package.

Concrete printed house example.

Photo of a 3D printed concrete house.



Challenges



Few of us on the project had much exposre to MongoDB Atlas, HTML, JS, CSS, merge integration, and OAuth development which led to initial difficulties getting used to the stack, reading the documentation, and getting the development environment running. Additionally, little to no contact was made with other teams during the development process- which complicated things. This was not the fault of the universities or organizations invovled, but rather an oversight on everyone's part while trying to develop a robust system as novice students, whilst doing assignments on the side.


This led to little to no standardized conventions amongst our teams, which is definitely a lesson I've taken away from this project. The timeframe on the project was one semester, so our time with the client along with our time for development was quite short. However, through this we followed an Agile SDLC model to develop a small part of a modern full-stack website- which I am grateful for learning.




Development Timeline



Georgia-Tech had been working on design ideas for the website prior to us coming aboard. We took their concepts and built upon them. The client requested OAuth compatibility to be able to log in through Google, Facebook, and Apple. Ultimately, we were only able to implement Google and Facebook OAuth functionality due to Apple requiring business licensing to include Apple OAuth.


Prototype front-end designed by Georgia-Tech group.

Screenshot of the prototype front-end designed by the Georiga-tech team.

Our next task was to setup the buyer/seller databases. We used MongoDB with Mongoose to communicate to the server. We formulated the user schemas, but didn't have a clear direction for what was required for the seller schema- as many different types of sellers could enroll. (Concrete 3D Printing, Trim Supply, Flooring Companies, Plumbing, Electrical) We decided to set it up for improvement rather than take liberties on the client's behalf, knowing that we had limited time with this project.

MongoDB account schema for buyers and sellers.

Screenshot of the schema used for the database.

We had a deliverable to create a project requirements document for our team's contributions which is displayed here:

We built the front-end in using React, ExpressJS, HTML, and CSS. After getting the database created, we connected the front-end to the back end and finalized our visual design.

Finalized front-end design for the login page.

Finalized front-end design for the login page.



Outcome and Regonition



The outcome of this project was far from a finalized product, but the template was created for the rest to be built upon. The experience of working on a product for a real company rather than doing something in my spare time or for an assignment really elevated my desire to exceed within the context of the project.


The knowledge gained through this experience is invaluable in a real-world development environemnt. My involvement on the project led to an interview for Bradley magazine, where a story on the development of our project was published. Entitled, "Houses On Demand: Bradley's Latest Caterpillar Collaboration", you can read the story here.