Hide menu

Lab 4: Mini project


In this lab, you will apply what you have learned in the previous labs by developing a nontrivial web application. In addition, you will learn how to integrate new components and libraries in your application. The goal is to develop a small to medium-sized web application with a state-of-the-art client-side user interface (in GWT) and sophisticated server-side logic and data handling.

Assignment

You should choose one of the following application areas and then design and implement the application. You are responsible for the detailed design and data model of the web application. Because this is a web programing course, the emphasis is on programming rather than fancy graphical design. Base the implementation on the web-programming technology from the previous labs; that is, GWT.
  • E-commerce site
    Develop an E-commerce site with product database, inventory database, shopping basket, and checkout procedure. There should be user interfaces for customers and staff and a server-side back end for managing transactions and data. (It is not required to support actual payment, such as credit-card transactions.)
  • Discussion forum
    Develop a discussion forum with topics, posts, and user database. Users should be able to view discussion topics and posts, and, by logging in, users should be able to post new messages in topics. The forum administrator or moderator should be able to remove topics, remove posts, and edit the user database. Store the topics, posts, and user data in a server-side database.
  • Data visualization
    Develop a data visualization system for illustrating data in different diagrams and graphs. Users should be able to select different dimensions/views and have the diagrams updated automatically. You can use the data source from in the previous lab or some alternative source.
  • Your own suggestion
    It is possible to develop a web application according to your own ideas. However, you must write a one-page description of the application and have it approved by your lab assistant before you start. The scope, technologies used, and amount of work should be similar to the regular project assignments.

Technical requirements

To ensure that you learn as much web programming as possible during this lab, there are some additional technical requirements on all mini projects. Your application should use at least three different user-interface widgets. Furthermore, you should use at least one new widget, component, api, or library, which you identify, download, install, and integrate in the application (e.g., image viewer, tree component for site navigation, payment api, and e-mail notification api). Finally, the project should involve both client and server-side programming using GWT.


As usual, your code is expected to be well-written and documented.

Examination

After completing the mini project, it is finally time for you to show the results of your hard work. Please note that the examination process of this lab will be more thorough than in the previous labs. Although most of you work in lab pairs, the purpose of the examination is to ensure that you have achieved the learning goals individually.
  • To pass this lab, you must turn in the code and demonstrate a working web application meeting the requirements above.
  • Both students in a lab group must be familiar with all code to pass. Be prepared to answer questions about your solution and explain how you solved technical challenges in the mini project.
  • Your lab assistant may send out specific instructions regarding time and location for the final examination of each lab group.
  • Finally, the general course-specific instructions and IDA rules for examination still apply.
Normally, the examination of this lab takes about 20 minutes.

Page responsible: Henrik Eriksson
Last updated: 2013-02-20