DEV Community

Salmaan Ali
Salmaan Ali

Posted on

First Fullstack Web App

After separately learning Ruby on Rails and then Javascript, it was finally time to bring the two together for a fullstack project. Using JS/HTML/CSS for the frontend and a Ruby on Rails API for the backend, I built a fully functioning note taking app. A user can create, read, and delete notes. They can then create, read, and delete the relevant tags to each of their published notes.

One interesting thing I gained from working on this project was a greater appreciation for the websites I encounter on the daily. I learned that building an application that can digest a variety of events and correctly assume the behavior of users is definitely more complex than I had initially thought. And then furthermore, being able to organize and build the code such that it is flexible for scaling is super impressive.

Some of the challenges I faced were with regards to organizing the JS code. At first, I had written all the code in one file and separated the blocks of associated code into sections delineated by a comment that described that section of the code. After I had the full application successfully running, I wanted to extract some of the repeated code into class object files associated to each of the models: Note and Tag. Once I had these multiple files working together, I had trouble determining how to distinguish the purpose of each file. Should the class object be responsible for fetching data from the backend or should it be responsible for rendering the data to the frontend? None of the actual coding was all that challenging once I knew what I needed to do, but tackling this last question was definitely the hardest part. But I figure this will likely be solved with personal experience and from reading others' codes.

Looking forward to continuing to grow!

Here's the link to my repo:
https://github.com/sallyman128/mod4-final-project

Top comments (1)

Collapse
 
tfantina profile image
Travis Fantina

Cool. I starred to look at in more details later.