Hide menu

TDDD27 Advanced Web Programming

Technological Requirements


Client-side framework: Your web application should work with an angluar-level frontend framework (new requirement from 2015). This means structural support and separating concerns. Look at Angular Conceptual Overview for a list of things to handle in large-scale web development. Frameworks at this level include: Angular.js, and Ember js. You can put together your own stack of frontend techologies to get most of what's in Angular. MVC, backend services, reusable components ... Convince me in your technichal specification with arguments focused on large-scale development. Currently Angular is the framework to rule them all ...

Server-side framework: Your web application back-end should be service oriented and focused on supplying data to a client-diven application or single-page app. Recomenden is a microframework with suitable plugins like Flask, Express.js, slimPHP, Scalatra or Spark and so forth. There are many more and you will save a lot of time searching for a suitable framework.

More large-scale backend like DJango, Ruby on Rails are naturally very relevant but not required - somtimes they confuse with their focus on controlling the front-end.

Back-end service design is important - think in terms of supporting multiple clients doing different things at the same time with your backend. Think Routs (REST-like but not nessesarilly stateless).

Thin noREST - not only REST

Backends like Firebase are not enough in the course since they only represent a database online. You can use it together with a backend though. But a requiremen tin the course is that you make a backend-framework work with a frontend-framework.

Systems like Meteor is from 2015 considered a backend framwork with advanced databinding. You need something like Angular with that.

In 2015 like 20144 we will not allow GWT/GAE-projects since it hides the web.

Data and user management

Look at best practice for your framework and look for intelligent use of tools and plugins to minimize the amount of code you have to write. Especially interesting are tehcologies that enable you to separate user management, data storage and application logics to a great extent. Implementing your own user-managemnet and writing plain SQL-queries in string in your backend logic will not be passable - unless specifically allowed.

As always, if you know what you're doing and want to try new and totally outside the box (but large-scale web) tool-chain that is appreciated, even applauded, even if you end up failing dramatically. The key word however is large-scale development. Propose in your techichal specification.

Page responsible: Erik Berglund
Last updated: 2012-03-01