Skip to content

Task FirstApp

caracciolo edited this page Sep 24, 2014 · 32 revisions

1. Code: Hello World Application

Download the skeleton project and setup the environment (detailed instructions).

The prototype already offers you the possibility to register new users.

You are asked to implement these new requirements:

  • specify the working team to which a user belongs.
    • Create a new page (new-team.jsp) with an html form for the definition of a new team (like in index.jsp). A team is described by a name and the date in which it was created (current timestamp). You can look at "index.jsp" and "IndexController" for reference.
    • When registering a new user (index.jsp), it must be possible to select one of the teams previously defined. Each User is associated to at most one team.
    • All information entered in the forms must be persisted to the database.
  • view a user's profile.
    • Create a page called "profile.jsp". By opening "profile.jsp?userId=123", you should be able to read the information related to the user corresponding to the given id. Information to be displayed are: id, first/last name, email, team name.

save the project on github in a repo named ese2014_warmup2. Use the same account that you mentioned when filling out the registration web form.

Recommended readings and reference material:

slides presented during the exercise hour can be found here.

2. Read: Project description

Searching for a shared apartment ("WG/Wohngemeinschaft") is something that almost every student has done at least once during his career. An effective strategy for finding a room is to go through a large number of ads and contact the people who are offering the rooms. One can find several websites explicitly targeted to users looking for a shared apartment:

These websites are very simple. They offer two main functionalities: Ad placement and Ad search.

Real estate websites (such as www.immoscout24.ch and www.homegate.ch) are typically not suitable for the purpose of finding a shared apartment. They typically target a wider audience. On the other side, they offer many useful features that cannot be found in simple ad placement websites.

We would like to introduce a new portal for finding a room in a shared apartment. Our goal is to beat the competition by introducing various features that cannot be found in similar websites.

User stories

  • As a user I want to place an ad for advertising a room in a shared apartment
  • As a user I want to search for relevant ads in a specific area
  • As a user I want to get exhaustive information about a room (e.g. pictures, location, roommate profiles, ..)
  • As a user I want to quickly send an enquiry to the ad placer
  • As an ad placer I want to conveniently manage enquiries and organize on-site visits
  • As a user I want to manage scheduled visits
  • As an ad placer I want to compile a list of the most promising candidates
  • As a user I want to bookmark interesting ads
  • As a user I want to subscribe to alerts to be informed about relevant ads

3. Analyze: project description

During the next exercise hour you and your team will have the chance to get a better understanding of what your customer expects from the product that you will develop. Take the opportunity to look into the project description and to discuss the provided user stories. They are intentionally incomplete and poorly detailed. Think about questions that you want to ask.

Possible type of questions:

  • what do you mean with ..? (clarification)
  • what happens if .. ? (unmentioned details)
  • do you also expect us to .. ? (define the scope of the application)