CodeClan week 12 - Worshiping at the Cathedral of code

So we have been working toward a full stack JavaScript web application for a couple of weeks now and as one cohort suggested we have been drip fed all the parts to build a cathedral but we are not yet able to see the cathedral.  This week we have been given the last few parts. We now have the full box of lego bits.  Some are unusual and comprise of odd shapes and sizes but we have them all.  Have we built a cathedral? not quite.  We built a bank app that could persist data. it needed 4 terminal windows all running various processes and had no CSS but it was good to see and understand all the parts and what they did.  It was more of a shed application than a cathedral, but hey I like sheds.  The Cathedral will come next week. 


Monday was a standup as usual at 9:00 followed by an individual instructor review of the weekends homework.  Again I did the bulk of it on the train on the way home on the previous Friday.  This time it was to pull movie data from an API and display it in a browser and add some CSS to make it look good.

This week we were supposed to start our group projects on the Thursday, however as next week is so close to christmas and most folk will be traveling on the Friday the project start was moved up to Wednesday.  That means we had to compress an extra day into this weeks classes. We were not quite sure how this would happen but it would become apparent later…


Lessons start with an introduction to Express which is a light weight web framework similar to Sinatra what we had used with Ruby a few weeks ago.  It provides a server to send HTML to the browser and gets us back to making RESTful routes again similar to what we did with Sinatra and Ruby. This was a morning code along and by lunch we had a bank application working and  another part of the built cathedral.


The afternoon was another code along this time introducing us to WebPack with gives us the ability to develop our apps in a Test Driven Development (TDD) way which we have not had since we took JavaScript into the browser.  Great to see and brilliant to be able to have facilities to test code as we develop again.  We revisited the water bottle app from a couple of weeks ago and were able to call methods on the water bottle and have them provide data into the browser.  Another part of the cathedral added.

Homework was to refactor the bank application from the morning and pull all the web browser view code out of the main app and into its own constructor.  Also expand the bank and add facilities to add interest to all bank accounts via the push of a button.  If only it were that simple.  Each button press adds 10% to every bank account.


Tuesday morning lesson and we were introduced Mongo and NoSQL.  Mongo is a database add on for JavaScript and NoSQL is as the name suggest no SQL.  It is a JavaScript alternative to reading and writing data to a database without the need to create SQL queries and tables.  Instead  data is stored as documents and as JavaScript objects meaning that you can use plain JavaScript to manipulate the data. Brilliant and if Im honest seems much improved from the SQL that we used with Ruby and Java.  In the code along we added a Mongo database to our bank application and were able to make the data persist, so should the app be shutdown and started the data would be pulled back from the database, so all those 10% button presses from the day before are still in the bank accounts.


The afternoons lab was hard!  We were split into pairs and were given just over an hour to create a Bucket list application, where we should pull counties from the countries API, select them add them to a list and persist them in a mongo database.  So all the countries you want to visit in your life would be developed as an application and persisted into a database for retrieval later.  We were to regroup back in class at 16:00 and and go through what we had developed.  A very frantic programming session followed and we managed to get the data from the counties API, and populated a list with selectable buttons (all 196 of them) and at exactly 15:59 we had our data saving to our mongo Database.  MVP met.  Homework was to expand on the bucket list app and add some CSS to make it look good in the browser.


I cant say I did much of it as the two days had been intense and covered a lot of course work. I spent the evening going through the class notes. Oh and Mongo NoSQL was the last part of the Cathedral.  We now have all the lego bricks to make a full stack JavaScript web application.

Wednesday morning and apparently yesterdays hour lab is normally a full day lab… interesting… so  that is how we compressed the week.  No matter this morning was a quick lesson in using Git and Git hub in groups and how to manage branching and merging code so we can develop our project applications in our teams.


Mid morning we were split into our teams and given our project choices.  Ill leave next week to cover the project in one hit.


We had an excellent lesson in the afternoon from CodeClans CEO Harvey Wheaton on Agile and scrum methods.  Interesting and inspiring and did make me chuckle when the Waterfall software development described as so out of date and only used by old fashioned software companies and it had been a good 10 years since it was last seen in a company.


So this week has been long and covered a lot in quite a short space of time.  Defiantly needing the two week christmas break now hopefully a chance to revisit some of the lessons from the past 12 weeks and practice more of what I have been learning.  Oh and I need to catchup on my evidence for my Professional Development Award.  Its been falling behind somewhat.


Thanks again to CodeClan and instructors, have you really crammed so much into my head.  And well done to my fellow Cohorts you are still brilliant and Im still enjoying the journey with you guys. Cant believe after christmas we only have 3 weeks left! 


<shout out unknown artist for the pictures which i snapped in the cafe on lady lawson street, Edinburgh>

Write a comment

Comments: 0