Plan your Holidays
From Wiki
Contents |
Short story
A person (the customer) wants to spend his holidays in a specific region in the world. For this purpose, he intends to rent an apartment or a house.
The customer possible activities are defined as bellow:
- register for an account;
- login/logout from his account;
- manage his account: edit personal data;
- search for an object (apartment or house);
- mark/unmark the object as "wanted for rent";
- watch the history of all his rented objects;
- delete his account.
Another person, agency, company, etc (the owner) has objects (houses, apartments) which are available for rent. All these objects can be registered into the DB, this way they become available for searches.
The owner can perform the following operations:
- register for an account:
- login/logout from his account;
- manage his account: edit personal data;
- add/delete/modify an object (house or apartment);
- mark object as free or rented (and specify the period);
- delete his account.
Information in the Database
The database contains information about the users and objects. The main difference between users is their account type: customer or owner. This difference is stored as a field specifying the user type, which is chosen when a user register for a new account. This type cannot be changed after registration.
Some informations regarding a user must be stored: name, city, address, country, region, birth date, registration date, account type, telephone, mail, www.
The following example is a possible entry regarding an user:
name: John Doe city: Cottbus address: Karl Marx Strasse, 13 country: Germany region: Brandenburg birth date: 11.08.1978 registration date: 21.09.2008 account type: owner telephone: 017696586781 mail: john@doe.com www: http://www.myJohn.com
Objects (houses,apartments) are defined by: type, city, address, country, region, renovated, price per day, backyard, grill, tennis table, pictures, available for rent, available start date, price is negotiable, stars level.
The following example is a possible entry of an object (house apartment):
type: house city: Potsdam address: Tomber Strasse, 54 country: Germany region: Brandenburg renovated: no price per day: 120 backyard: yes grill: yes tennis table: yes pictures: pic1.jpg, pic2.jpg, pic3.jpg available for rent: yes available start date: 15.09.2008 price is negotiable: yes stars level: 3
Attention: if you use MySQL or PostgreSQL databases in place of JBoss Hibernate, a new field is needed (i.e. ID) for unique identify each entry.
The application's GUI and supported activities
Depending of the authenticated user type, there are two possible situations:
The customer sees a search form where he can complete the following fields:
- the type of the object (house or apartment);
- the city, the country and the region where the object must be;
- select options for the object (such as grill, tennis table, etc);
- the minimum level of stars (one star, two stars, etc);
- the start date for rent;
- the end date for rent;
- only objects having pictures (or not);
- renovated status;
- only objects having negotiable price;
- the start price and the end price (if not set, all prices are considered)
After search, the customer can see a list of objects, and clicking on an object he can see object's details. At this level, if the object is available for the specified period, the customer has two options: mark the object as rent or cancel the rent (if already rented by him).
Additionally, the user can also see all his rented objects until now. For the active rented objects, he has the option to cancel the rent.
The owner can manage his objects: add, edit, delete. Additionally, he can see a list of all his objects, and for each object can see details about customer (such as the telephone number, e-mail address, name and age) if the object is currently marked as rent. The owner cannot delete an object which is already marked as rent.
Possible improvements
Some improvements are possible for this application:
- an e-mail can be send to the object's owner announcing him that the object was rented. The mail may contains details about the customer;
- the customer might not cancel the rent with less than 5 days before the starting date of the rent;
- the owner must approve the rent;
- ranks might be assigned to users, and this might affect their credibility (for example an user has canceled half of its requests for rent, and so on);
- the Google Maps API[1] can be used to see the object's position on the map. For this information about objects must be extended with: latitude and longitude.
Implementation Requirements
- The application should run on any compliant EBJ3 application server (JSR220) such as JBoss AS.
- The Web tier should use JSP Documents.
- The database support is either JBoss Hibernate or MySQL/PostgreSQL.
- JBoss Portal can be used.

