in Studies

Coursera Full Stack Web Development Capstone Project

A couple of days ago I finished my capstone project for the Full Stack Web Development specialization on Coursera. It marks the end of the 6-course specialization about Bootstrap CSS, AngularJS and NodeJS.

The Assignment

The assignment itself is simple:

Build a web application with the tools taught in the course (Bootstrap CSS, AngularJS, NodeJS, MongoDB).

Everybody has the free choice what to implement, however it should be a small app as it must be implemented during a short period of time. I decided to implement a message board where users can create boards and post messages (more below).

The Schedule

The capstone project takes 8 weeks in total, while only 2 or 3 weeks are dedicated to actual coding. Each weeks has about 3 hours of workload. So you can spend approximately 9 hours to coding – but you will definitely spend more time!

Week Topic Assignment
1 Ideation
2 Ideation Report Report (PDF, 2 pages) about your idea
3 UI Design and Prototyping
4 UI Design and Prototyping Report Report (PDF, 2 pages) with UI mockups
5 Architecture Design and Software Structure
6 Architecture Design and Software Structure Report Report (PDF, 3 pages) with architecture, structure, REST URLs, data model
7 Project Implementation and Final Report
8 Final Submission and Report Report (PDF, 2 pages), code on GitHub, running app on IBM Bluemix

The Workload

You will spend most of your time for coding, but there will also be a huge amount of time you will spend on organisational tasks. Those tasks might take a lot of time:

  • Making a GitHub project including README.md, .gitignore and so on
  • Setup a Travis CI build
  • Deploy to IBM Bluemix (read tutorials, write a .cfignore and manifest.yml)
  • Do all dependency management
  • Install and configure MongoDB
  • Manage different configs for you local development and IBM Bluemix

While all of those tasks are absolutely necessary for every project setup, they can easily take up some hours nevertheless. This melts down your coding time.

My Project

I called my project MEBO which simply stands for Message Board. It’s a small application where users can create boards and post messages on them. Every who know the link to a board can access it and edit all messages. There’s no login or so. You can find the project on GitHub: https://github.com/tuhrig/mebo.

Lessons Learned

  • Make it small! Pf course, everybody wants to make this super fancy application with its own user management, administration view and all kinds of features. But make your life easy and do what’s needed to demonstrate your skills.
  • Start early with the deployment and integration to IBM Bluemix. No matter how well your project is implemented, if it doesn’t run on IBM Bluemix (or anywhere else) where I can see it, you will not pass the assignment. Get things up and running from the beginning.
  • Let it looks nice. The first impression is very important. If your project looks nice and your GitHub project has a README.md, your’re on the right path.

Best regards,
Thomas

Write a Comment

Comment

  1. Well done! I have been taking the same course for the past two months. I am already done with two modules and have been thinking of taking the fifth, NodeJS, module. However, I’m a tad hesitant of taking the AngularJS module. I have been (self) learning Angular 2 for a few weeks and from what I have seen/read/heard, they are completely different. Of course Angular 2 is an improvement on the previous version hence the appeal, and given this huge difference between the two, I am unwilling to go back to learning AngularJS.

    TL;DR. What is your take on the applicability of Angular 2 on this project, and subsequent modules in the course?

    Cheers!

    • As you said, Angular 1 and Angular 2 are completely different. Although there might be some similarities if you use components (available since Angular 1.5) a lot. However, Angular 2 is not part of the Coursera course and you cannot use it to fulfill the assignments. You must use the current Angular version.

      While Angular 2 will definitely be the future, it’s not so relevant right now. People are using Angular 1 right now and they will probably be using it for the next couple of years. But honestly, I don’t know enough about Angular 2 to make any predictions.

      Anyway, I pretty much liked the NodeJS module, so I can recommend this one (no matter what you are using in the front end).