<mosaic.cnfolio.com>
Group Design Project – B202

Product design report


1. Design requirements

Within this section, we aim to outline what our most important and beneficial features of our system are. Explanations of why we chose to implement the particular features and who they benefit will also be provided.

1.1 Email Notification System - Luke Barklimore(322532)
While designing our system, we found improved communication between students and landlords to be one of the key advantages of using our web based student housing list – opposed to the current paper based list’s method of publishing landlord's contact numbers. Our aim was to make messaging as efficient and simple as possible. It was decided that logging in continuously to check if a new message had been received, or to reply to a message was not desirable. Therefore an email notification system was designed, which would send emails to users notifying them when a new message had been received. Within the email notification is the body of the message (sent from another user via the web interface). In addition to this functionality, users will be able to reply directly to the email and have the message passed back to the appropriate user automatically – further reducing the quantity of time required to use the new system.

1.2 External Authentication Support - Tom De Silva(399432)
Our system will differ from other housing websites, in that it will allow the users to login with their current university login details. This is important because it eliminates the need for the student to create a profile thus making our system more convenient. By employing this feature our site will eliminate the need for the university administrators to manage multiple profiles for each user.

Even more importantly it allows the system to verify users as the university has all of the personal details of each university student account so when they log in the Landlords can be assured that they are communicating with current and ACTUAL students which leads to the next point.
This feature will deter students from abusing the system or landlords as the ban or penalties they incur will affect their university accounts, and any actions they take will be traceable and the offending party held accountable.
As the system will only accept university of Portsmouth account details it will stop any other parties from accessing the student housing information.

Another added bonus is that the students will not need to have another email account as their port.ac.uk address will be the verified and accepted email address and if they wish to use their other email accounts they simply have to select the forwarding option from their university email account. Finally this will allow each student to have ONLY 1 account as no students have multiple university accounts.

1.3 Advanced Search Results - Sam Vaughey(410191) & Sean Doggett(396823)
Search Features – How the website is expected to filter results etc
Another great factor our service offers to people that others currently do not is the ability to filter results when a student is searching for a specific property. We feel It’s very important for our website to provide a good method of searching as we intend this to be one of the main advantages our website will offer compared to others.

Filtering – why it is important

Students will be expecting a way of filtering search results in order of preference whether it be the price range they are looking to pay for a house, a certain location or amount of people the house can hold. Everything will be easily accessible from our searching.
As our key user group will be students looking for available student properties; this group will constitute for the majority of our end users, therefore it is important we cater for this group in the best possible way.

Student users will be visiting the site expecting a quick and easy method of searching and filtering the contents of the property database in order to find a property that meets their requirements.
The main factors we want to make sure we provide to the users are the ability to save them time and hassle in searching for the perfect property.

2. Use case diagrams

The following use cases and diagrams aim to explain exactly how the previously mentioned requirements are likely to be used.

2.1 Email Notification System - Luke Barklimore(322532)
text

Use case diagram demonstrating the actions taken by the system when a user, a student in this scenario, sends a message to a landlord via the website interface.

text

Use case diagram demonstrating the actions taken by the system when a user, a landlord in this scenario, replies to an automatically generated E-Mail. This will occur after the first use case takes place. An E-Mail is sent in reply to an automatically generated E-Mail, the E-Mail is then converted in to a internal system message and then passed to the destination user.


2.2 External Authentication Support - Tom De Silva(399432)
The use case diagram below describes how a user would log into our system without the need to create a new account just using their current university login we plan to achieve this by building the system to the following specifications.
text


2.3 Advanced Search Results - Sam Vaughey(410191) & Sean Doggett(396823)
For the Use case scenarios and regarding the search feature we want to be able provide detailed examples of how and when these scenarios may be used.

As this is the main function of the site it will be able to query many different combinations of properties, including how many rooms and/or price range. While the variables change the method is still the same, the user logs into the website in their student account, locates the main search, enters their preferences and then searches for a house within these specifications. When the user finds a house suitable they can click on it to view more details and if they wish to, contact the landlord.
User filtering results once searched:

Log In > Access Search Page> Fill out Parameters > Search Database

At this point the database has provided the student with many houses to view regarding is information he has put in so far, HOWEVER as this point the student may want to filter his search down more as at the moment, he has over 100 + houses to search through we would not only take a long time but could get extremely boring.

Database queried > Student amends forms as necessary > Database filtered and updated according to student input

There will be many ways the student is able to filter his / hers results that makes our housing system more unique than any other at the moment as they will have the ability to manipulate and alter HOW the results are displayed.

Student Filters results by rent per month:

-student has searched for houses between 250-300 per month
-wishes to sort by price
-clicks 'price per month' table heading
-search results are refreshed and displayed in new order

Student Filters results by property type:

-student has searched for houses to be certain type of property
-wishes to sort flat
-clicks 'property’ table heading
-search results are refreshed and display in new order with flats as the first results

Student Filters results by property & University location:

-student has searched for houses to be certain location
-wishes to sort by distance from postcode of University
-clicks 'nearest house to postcode’ table heading
-search results are refreshed and displayed order of closest to the campus

3. Design specifications

Our design specifications for each feature aim to describe exactly how it will be implemented to meet our defined requirements.

3.1 Email Notification System - Luke Barklimore(322532)
Our system will provide email notifications by making use of a preconfigured SMTP mail server - details of the IP address or hostname, username and password are specified during the installation of the student housing software package, or later configured via the administration panel.
text

As our software package is to be written in PHP, emails will be generated with the use of PHP’s mail() function – destination email addresses, name’s etc will be taken from user details stored within the users table in our MySQL database. All emails will be sent from a predefined mailbox on the specified mail server.

When a user sends a message to another (for example, a student contacting a landlord regarding a property), a conversationID is generated. This conversationID is unique to the thread of messages that will be exchanged between these two users. The conversationID will be visible in the subject field of every email sent from the system. For email replies to be interpreted by our system, it is vital that users do not remove or modify the subject field of the email – a warning explaining this to the user will be attached to every email sent.

In order to facilitate the ability for users to reply directly to system generated emails, our system will check the inbox of the dedicated mailbox – specified during setup. This is to be checked every 2 minutes – if required; the mailbox polling can be increased/decreased via the administration panel. When an email is retrieved from the mailbox, the conversationID will be extracted from the subject field. If the conversationID is valid and the email was received from the correct email address (one of the two associated with the conversation), the system then extracts the message from the email and generates a new message that is sent to the destination user – along with this new message, a new email notification is sent with the same conversationID.

Emails that are received without a valid conversationID or from an email address that is not associated with the conversationID are to be deleted. Emails of this nature are likely to either be not related to our system, or attempts to exploit the system.

3.2 External Authentication Support - Tom De Silva(399432)
The accounts system will be based on a simple PHP login script. The login script will simply connect to the universities user database and authenticate the username and password against the database and if successful redirect to the housing website, if not then the user will be directed away to a login failed page with the option to retry.

3.3 Advanced Search Results - Sam Vaughey(410191) & Sean Doggett(396823)
Through combination of different web programming languages including php, mysql and javascript, the system will provide advanced searching functionalities. This will include all of the aforementioned search functionalities that would be expected from a similar product but with extra features to provide a more specific search result to the user.

One of the key features to be included will be the option to include keywords allowing a user to find something a little out of the ordinary search criterea. This will be implemented using mysql and php. When the user enters search criterea the system will query the database and search for matches and near matches that relate to the entered criterea.

Another key feature that will be added is the ability to allow a user exclude keywords. This will return result excluding results that match the included keyword. This functionality will be implemented in the same way as the previously mentioned 'include keyword' feature. This functionality combined with the 'include keyword' functionality will make for a bespoke result and will taylor to the users specific requirements.

The importance of these features is to give the user total control of what results they are given from the database. Using keywords to include and exclude results that may clutter exactly what the user wants to find greatly enhances the searchability of the system and provides a quality service to the user at the same time.

4. Simulations, prototypes and user surveys

Based on our design requirements and specifications, the following simulations and prototypes have been generated to demonstrate how the feature would look and perform when implemented.

4.1 Email Notification System - Luke Barklimore(322532)
Example of automatically generated email.

Example of automatically generated email that is sent on receipt of a message.

Example of automatically generated email.

Example of how a user would reply to a message, in the format that the system would be able to detect this message as part of the existing thread.


4.2 External Authentication Support - Tom De Silva(399432)
text

Example of dialog box requesting user credentials when user wishes to login to system.

text

Example of result of entering incorrect user credentials.


4.3 Advanced Search Results - Sam Vaughey(410191) & Sean Doggett(396823)

When designing our website, we need to take into consideration the opinion of our main target group

Do you think that the current paper bassed system is hard to use?
text

Do you think that the current system is a waste of paper and envromentaly friendly?
text


As most people seem to agree that the current paper based system is hard to use and is a waste of paper, we are going to hopefully correct this by implementing a intuitive search system that is easy to use and is environmentally friendly, built on the internet that can be accessed from any ware, as opposed to having to go into the university and pick up a printed housing list.

Do you find the current system confusing?
textuk/chi/2.JPG" title="text" alt="text"}}
Our feedback results suggest that the current system can become confusing, having to look through the housing list whilst playing with maps and phoning multiple landlords to check if the houses are still available and whether or not they meet the users requirements can be a nightmare of a task. We plan to counter this problem by including a link to a map of the local area, including all details of the property and the landlords email address all in one easy to use results page. This page can be completely customised to the users requirements.

Do you feel that the housing list should be updated as the properites have been taken?
text

Due to the fact that the old system is paper based, it is outdated within an hour of coming out, this is no longer the case as when a property is taken, we remove it from the search engine, meaning that only the available houses are left on screen.

Do you find comunicating with the landlord sometimes a problem?
text

Our results show that sometimes it is hard to get hold of landlords, this is because they have lives too! Our easy to use email client system is built so that landlords and students can communicate simply, and will always be able to quickly send a query or message to the landlords and should hopefully receive a rapid response.

Would you benefit from an online housing site, which lists available properties, and allows you to easily communicate with the landlord?
text

Out of the people that we surveyed, we found that the majority would find a site that provided this service very useful. We believe that students find with the current system there is no way of updating the list to show houses available and those that are not, a system which implemented such a function would be useful to. We also believe that these results show communication between the Landlord and Student is seen as very important, and a system that deals with messaging would also be very popular. Students also expressed a concern with regards to reliability of email communication, we however hope to overcome this by implementing a simple web based interface to add extra ease to the functionality.

Do you feel it is important to have a simple way of viewing the student housing list, allowing you to filter out any results that have no relevance?
text

From looking at the results for this, it is evident to see that many people found the lack of filtering and result relevance was the main reason that the current student housing list seemed outdated and hard to work with. It is because of these findings that we believe we need to give the users freedom to set search criteria, allowing them to view the results that are most relevant to there needs.

Would you be willing to create an account with an online housing system?
text

From this question we noticed a reluctance of willingness from the students to sign up to our service. We believe too many students were under the impression that signing up to a service would have drawbacks such as sharing of details, cost for the service, signing up being a chore etc. We therefore believe the best approach to take is to incorporate the system with there university email log-in, allowing the users simple registration whilst also guaranteeing authenticity of the members accounts

Do you see a messaging system on the housing website as a suitable form of communication between the landlord and student?
text

By looking at the results from this question it seemed that many people we spoke to has trouble when communicating with there landlords. They mainly felt that response times from messages and phone calls were very varied, with landlords being very unreliable, and some times landlords seemed impossible to contact. Because of this we feel that a messaging service for the users and landlords would adhere to this problem. We believe that a messaging service would allow ease of communication, and allow both parties to communicate harmoniously.

4.4 User surveys - Ross Martyn(394251), Dan Fenner(383428) & Chris Moore(402782)
...




TOM 399432

User Accounts

Design requirements

User accounts – How the website allows the user to login

Use Case

Design specifications

example:
We would use a script that would create a form, this form would then be filled out and (username and password) then the details dumped into a table called "members" this table is compared to the specified database using another script that connects to the specified database and verifies the username and password.
Below is the script that creates the form that the users will enter their login information into i have used my user name(ece70120) and a random password (pass123456789)
this script then takes the entered information and runs the checklogin script.
CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Dumping data for table `members`
--
INSERT INTO `members` VALUES (1, 'ece70120', 'pass123456789');
Main_login.php
table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
<td>Username</td>
<td >:</td>
<td width="294"><input name="username" type="text" id="username"></td>

<td>Password</td>

<td><input name="password" type="text" id="password"></td>

<td><input type="submit" name="Submit" value="Login"></td>

Here you can see the checklogin script, we have set the username password, database name and database password, i have used examples here but again when actually implementing the system the appropriate information will be used.
The script connects to the database and then compares the information in the previous form to the information in the password database.
If the information exists in the database and matches then the user is redirected to the Student housing homepage.
<?php
$host="localhost";
$username="UOPWEBADMIN ";
$password=" STUDENTHOUSING ";
$db_name="STUDENTLOGINDETAILS";
$tbl_name="members";
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$username=$_POST['username'];
$password=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $username, $password and redirect to file "login_success.php"
session_register("username");
session_register("password");
header("location:STUDENT_HOUSING.php"); //HERE THE SCRIPT REDIRECTS TO THE STUDENT HOUSING SYSTEM HOMEPAGE
}
else {
echo "Wrong Username or Password";
}
?>




Sam & Sean Section / Searching function & filtering


Design requirements

Search Features – How the website is expected to filter results etc
Another great factor our service offers to people that others currently do not is the ability to filter results when a student is searching for a specific property. We feel It’s very important for our website to provide a good method of searching as we intend this to be one of the main advantages our website will offer compared to others.

Filtering – why it is important

Students will be expecting a way of filtering search results in order of preference whether it be the price range they are looking to pay for a house, a certain location or amount of people the house can hold. Everything will be easily accessible from our searching.
As our key user group will be students looking for available student properties; this group will constitute for the majority of our end users, therefore it is important we cater for this group in the best possible way.

Student users will be visiting the site expecting a quick and easy method of searching and filtering the contents of the property database in order to find a property that meets their requirements.
The main factors we want to make sure we provide to the users are the ability to save them time and hassle in searching for the perfect property.

Use case scenarios / Searching for a House


For the Use case scenarios and regarding the search feature we want to be able provide detailed examples of how and when these scenarios may be used.

As this is the main function of the site it will be able to query many different combinations of properties, including how many rooms and/or price range. While the variables change the method is still the same, the user logs into the website in their student account, locates the main search, enters their preferences and then searches for a house within these specifications. When the user finds a house suitable they can click on it to view more details and if they wish to, contact the landlord.
User filtering results once searched:

Log In > Access Search Page> Fill out Parameters > Search Database

At this point the database has provided the student with many houses to view regarding is information he has put in so far, HOWEVER as this point the student may want to filter his search down more as at the moment, he has over 100 + houses to search through we would not only take a long time but could get extremely boring.

Database queried > Student amends forms as necessary > Database filtered and updated according to student input

There will be many ways the student is able to filter his / hers results that makes our housing system more unique than any other at the moment as they will have the ability to manipulate and alter HOW the results are displayed.

Student Filters results by rent per month:

-student has searched for houses between 250-300 per month
-wishes to sort by price
-clicks 'price per month' table heading
-search results are refreshed and displayed in new order

Student Filters results by property type:

-student has searched for houses to be certain type of property
-wishes to sort flat
-clicks 'property’ table heading
-search results are refreshed and display in new order with flats as the first results

Student Filters results by property & University location:

-student has searched for houses to be certain location
-wishes to sort by distance from postcode of University
-clicks 'nearest house to postcode’ table heading
-search results are refreshed and displayed order of closest to the campus

Design Specification

Below is an example of how we intend to implement the searching. Once the student selects a house from the queried database, that chosen house / flat is called with a special div sliding tag displaying more information about that certain property.



1. As you can see above, the user has allready chosen where he / she wants a house and where abouts which uni from the previous option menu.

2. Currently the Display is a standard brief description of each house, however once the student has chosen a house he or she is more interested in they simply quick the "details" button, which triggers the DIV content to slide down vertically displaying more information about that property.



REFERENCES

http://www.phpeasystep.com/