What Nessie and a full-stack engineer have in common.....
Tags: beginners, webdev, node, database
Published: 2022-03-21 13:26:07


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zyx85w1h4opbj07e3dlt.png)

After two weeks of learning everything back-end, the moment of truth had arrived.  We were paired with a classmate and tasked with creating a full-stack project.  I thought full-stack engineers were like Bigfoot or the Loch Ness monster, some people claim to have seen 'em but it's still inconclusive if they exist or not.  Turns out, they are real and we were expected to do our best imitation of one.  


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/igcbiahoulcs2qcnvnpa.png)

We were tasked with creating a CRUD application with a user interface, API, and a database.  What was once a mother-approved replacement word for more salty language is now an acronym for the four basic functions that most applications perform.  CRUD stands for Create, Read, Update, and Delete. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kxgam4ya5gknn7woovrb.png)

After a short brainstorming session, my teammate and I settled on creating a travel website.  We would employ JavaScript, CSS, and ES6 Template Engine to create the front-end, Node.js and Express to create the routes, the Yelp Fusion API for data, and finally Sequelize ORM, elephantSQL, and PostgreSQL for the databases.  


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ydfa7l47z400jwtcho49.png)

Our first task was to see if there were any API's out there that could supply us with the necessary data.  Our biggest priorities were the following:  1) free, 2) free, 3) free and last but not least: free.  Luckily we came across the [Yelp Fusion API](https://fusion.yelp.com).  This ended up being a triple threat for us as it provided us data for hotels, restaurants, and excursions.  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/92smz4lqn4l272hdtfjv.png)

With our data secured, we then went to work creating the routes and databases.  This was easily the biggest undertaking in our young careers, ensuring multiple routes were able to perform the different aspects of CRUD on different databases.  

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2rbrw3ojt0lsecx37x08.png)

Finally, we created a front-end user interface that allowed easy access to the data.  Getting the data to display properly was a challenge but with a lot of trial and error, we were able to present the information in a consistent format.  


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/89p10343mp2b90vx741w.png)


This was easily the most difficult project we have had to perform to date.  Once the patterns were established, it was easy to replicate for each different database or route.  However, creating that initial pattern was demanding.  Thankfully, we had our partner to lean on to help brainstorm, create, debug, and problem solve.  For such a small project, there were many moving parts.  It is easy to see why most industry-scale projects devote whole teams to just one aspect of a full-stack project.  

BONUS:  In the above pictures, I have the names of four characters from four different movies.  First person to name all four movies correctly in the discussion section below wins a mystery prize!  (I realize that what I'm about to say is 100% coder heresy, and I risk getting kicked out of the community, but I'll say it anyways.......No googling the answers!)