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.
Page responsible: Henrik Eriksson
Last updated: 2013-02-20
