CS3216: Week 7 — Final Project start and Retrospection of Week 1

So, assignments 1 through 3 are over and final project has officially started.. or rather it has already started for some time but it’s now moved beyond the stage of just “proposing the app that we want to build”.

It’s already been 7 weeks since we talked about “What I hope to learn from CS3216" and I would like to take this opportunity to go back and see whether the goals have been met or still needs some working towards.


Learning to adapt to the fast-paced ever-changing world of technology.
Change by marc

First of all, I wanted to learn how to be able to adapt to the development field by being exposed to more frameworks, more ways of doing things since the our field moves so quickly. For assignment 1 through 3, I’ve had the chance of working some-more with Ruby on Rails, MeteorJS and more libraries of code.

I think that’s ok and for the final project we’re actually having a tech stack that is probably gonna rock this learning point as we integrate tech solutions such as Firebase, Twilio, Appcelerator, Backbone so on and so forth.

I think it’s good that we’re actually working for an external party that is actually competent in terms of Software Engineering because we get to see what softwares that are going to be met by the market employs in terms of software. Most of the external pitching parties were full of teams that did not know much about Software Engineering. I think that is fine if they were pitching to people who are already extremely experienced in building software. But a team that does not know Software Engineering + students who are still on the rope is just a recipe for disaster in my honest opinion.

Tow things that the teaching team actually feedback to us for our assignment 1 — RepNUS was that the app is ok except that the maintainability of the app is not that up to par and that the UI is not yet the best possible.

For the maintainability of the app, they suggested that we use something like Backbone.js, Ember.js etc. instead of just fully using jQuery to code the reactivity of the app because it helps to make the code more maintainable. Point taken and internalised because towards the end of the project we did feel like the maintanability of the code base is dropping and we just couldn’t really figure out why. It’s not that I have had 0 exposure to Ember.js or Backbone.js or things like Angular.js but it just seemed that if we put ourselves up to learning that amongst all the different things that we’ve learnt with assignment 1, we might not even have completed it.

As for the UI, well — yeah, we had all 4 programmers in the team and it was kind of a collaborative effort to design the UI. I think at least 1 out of the 5 graders though that the UI was ok — easy and clear whereas the rest thought that it could be better. I think that’s already an amazing effort by my group mates and I considering that it was kind of our first deep dive into designing a UI.

Ok, so back to the point of learning. Another awesome thing that we are also going to learn more about is also the part about designing the UI in our final project. I think our efforts in designing the UI in assignment 1 was haphazard because we kind of just designed the wireframe and just only improved it along the way. We didn’t really use something like Invision to create a fully working prototype so yeah we could really improve on that.

Woah this is actually quite long but I think that’s because we actually really learnt a ton about this part.


Immerse myself deeper into the back-end, design, business, law side of things, things not pertaining to the front-end.
Leonardo Da Vinci by Chris Brown

So, for this part about immersing myself deeper into the other part of things. I’ve actually managed to do a minimal amount of back-end, some design, quite a bit on the law side of things (having written the terms of service, privacy policy etc.) for assignment 1 & 3 and well not that much into business.

I think that’s alright too tough, because it’s only been like what 8 weeks? I have time along the way to level up myself more in the other stuff and hey at least I’m progressing along the line for the “other side of things” yeah?


Make sure I do not get the Rockstar Syndrome
Danse Macabre: The Rockstar by Dylan Meconis

For this part, I actually think I haven’t done very well — I think I need to learn to listen more and talk less. I must do that.

In any case, it’s actually really hard to get people to conform to a coding style guide for software engineering projects so far — I’ve realised? It’s really true that because of how most modules enable us to just code alone and all, almost everyone have their own coding style and it seems just so hard to change. It’s even worst when it comes to school projects because well — no one’s there to really call the shots and there’s not that much repercussion since once we’re done — it’s like #yolo let’s go we don’t have to maintain this code base anymore!

Personally, I try to adhere to code standards published online by reputable companies or community standards such as Google’s JavaScript Style Guide, Google’s Java Style Guide or Ruby Style Guide by the Community as much as possible because I really do believe that maintainable code — or well having everyone follow one coding standard is really important. I slip up sometimes when it comes to following those standards but I think it’s still important to follow one.

I’ve actually decided to follow those because — especially in school, everyone’s more or less peers (except for some legendary people), it’s quite obnoxious to say “guys, follow my style, I do what you all do what, ok?”. It also prepares us for the standard of conformation to style guide that we’ll probably need to adhere to in the future if we want to work somewhere with respectable software engineering standards.

I just really hope that others will actually see the importance of this. Especially for the final project seeing that it’s gonna be much larger and maintainability of code is gonna come back and bite us in the ass if we do not optimise for it in the early stages of the project.


Right so in retrospection, I think the goals are more or less a-ok in terms of being met and going down the final project it’s probably gonna be met to a higher level. That’s good.

There’s actually not a lot to talk about for final project yet because we’re still in the midst of setting it up and we have another 6–7 weeks to go before STePS and I think taking this time to retrospect on what I’ve wanted to learn from this module and whether I’ve done is appropriate.

Let’s look forward to a fruitful final project and learning journey after a satisfying first half of the semester for CS3216.