Application Servers
Practice
Stored guestbook (lab 4 revisited)
see the exercise at Lab 4.
Stored authenticated guestbook (lab 4 revisited)
see the exercise at Lab 4.
Tagged reviews
Design (and implement) an application where logged in users can add reviews of various items on the web. The application would allow non authenticated users to see all reviews, or a single review (by clicking a link in the reviews list, for example) and authenticated users to add reviews. Such a review should have:
- an author, a date, a title
- the review itself (the text that a user adds about the reviewed item)
- tags of the review: after adding the review, the author or other users should be able to add a few keywords (content labels) to summarize his review
- the reviewed item, which could be roughly anything on the web, but should be handled specially, where possible, by the application. For example, if the reviewed item is an image, the application should display the image from an URL. If the reviewed item is a video on youtube, the application should embed the video, if it's a place (a city, a theater, a bar, etc) it should be able to display it on a map, etc. This application doesn't necessarily have to provide support for handling all types of items (in terms of displaying them), but the data model should support multiple types and handle easily adding a new type.
Should identify the following components in the application (in a potentially different order):
- what are the "screens" that are needed for the application? How would these screens be chained (from where we get where and what action has which effect)? What would be the XHTML structure of these screens?
- what are the actions that the user can take in the application? How would these actions be implemented? Which function / class does what? For each of these functions, what's the user input that triggers it? how is this input collected, what's the processing that's done on it, what data is needed and where do we get it, what will be displayed to the user when the action is done?
- what is the data needed? how is the data stored? where? which data is needed for which action? who is responsible for reading which data? who is responsible for writing which data?
A schematic approach can be used for identifying these components and relations between them (anything from rigorous UML diagrams to a simple drawing on a piece of paper would do).