Weeks 3 + 4

I intended to update this at least once a week but somehow, the last 2 weeks have totally flown by. I decided to try to do a quick recap while I watch the Grammys (which have largely been very uninteresting thus far).

Week 3 of Fullstack Academy was largely spent on databases. We discussed SQL and used Sequelize, a Javascript ORM for SQL, to add a backend component to a version of Twitter that we made. Using Sequelize took a little bit of getting used to because I’ve only ever used actual SQL commands for querying but I began to see its usefulness as the project went on. I actually wanted to do a blog post on Sequelize as I found the documentation a little tough to understand initially but never got around to it. Perhaps in the future.

We then built our own mini version of SQL using Javascript which was fairly challenging but made me appreciate database functionality a lot more. Later in the week, we learned about MongoDB and then built a version of Wikipedia using MongoDB, Express, and Node.

This was our first real “full stack” app and it taught me a lot about the Model-View-Controller, why we even use Express and Node, the benefits of NoSQL databases like MongoDB and more. I appreciate that the different components (model, view, and controller) all have segregated but important roles and provide essential functionality to software and web applications. Very simply put, the Model handles the “data”, the View outputs information from the model, and the Controller interacts and updates the model and is used by the user. MVC was a term I heard a lot but did not understand at all until I actually used it for building Fullstack applications using Express and Node. Our Wikistack app allowed users to view and search pages, add new pages, editing existing pages, and find similar pages using tags. It was not a particularly complicated concept which allowed us to focus on our code and learn how to build a functional web application.

The end of Week 3 and start of Week 4 included an assessment on Express.js and Mongoose (the ORM we used for MongoDB). The assessment helped me realize I have learned a lot more than I probably realize and also more clearly understand how Test-driven development works (we were given tests and then wrote code that passed those tests).

Week 4 included a few different topics while still continuing to build web apps with Mongo, Express, and Node. We had a workshop on testing where we wrote tests to test our Wikistack application. I did not previously realize that people wrote tests for web applications; I kind of assumed they just went on the website and tested it by testing out the different functionality. I realized you can actually write tests that simulate HTTP requests and also tests that see if your database functions as expected. We then moved on to a more unrelated topic- HTML5 and CSS. We designed our own version of the Bootstrap front-end framework using SASS. I had a little bit of CSS experience but not a lot, and no experience using a CSS preprocessor like SASS so this workshop taught me a lot. I also learned more about responsive design and using media queries to change the design of your website for different devices and screen sizes.

At the end of the week, we designed a “Trip Planner” website that included a Google map and different hotels, activities, and restaurants for users to use. So far, we only designed the website and the backend database and did not implement any functionality (we will be doing that this coming week). Eventually, we will make a website people can actually use to plan a multi-day trip in NYC’s financial district where they can choose where they will stay and what they will do each day and those activities will be added to the map, The design of the Trip Planner taught me more about web design and again helped me practice my HTML and CSS skills, as well as using Swig to generate dynamic HTML pages and using Express to build web applications.

I am excited to continue getting better at using Mongo, Express, and Node to build dynamic websites and eventually integrating Angular.JS as well.

A few random thoughts: I feel like I am getting more acquainted with the fact that Javascript is a functional language and doing things the more “Javascript way”. I’m also getting a lot of practice at debugging and using different tools to do so, in particular Google Chrome Dev Tools. I also feel a lot more comfortable using the command line. The more I use Javascript and Node, the more I see why they are so popular today. I can’t believe that we only have 2 more weeks until review week and then the project phase of our program. It feels like time is flying by!

Show Comments