The rate at which the population of Nigeria is rising is quite alarming, and various infrastructures are being put in place in order to accommodate the growth


[read more=”Click here to Read More” less=”Read Less”]

The rate at which the population of Nigeria is rising is quite alarming, and various infrastructures are being put in place in order to accommodate the growth. More so, the economy of Nigeria is one of the fastest in the world in terms of growth. This growth leads to investors moving to Nigeria which raises the question of how easily will they find appropriate accommodation? Nigeria as a developing nation and an emerging market needs a real estate management system (REMS) through which people located anywhere can find apartment easily in Nigeria; be it to buy, rent, or whatever their needs maybe. Are there any real estate management system in Nigeria? Yes, there are. Are they easy to use? Most of them are not user friendly.
The main reason behind this proposal is to present a real estate management system through which people anywhere in the world can find apartments easily in Nigeria. The proposed REMS will possess better functionality, reliability, usability, and other features lacking in the systems available at the moment. Furthermore, the system will be a website where users can check information on available housing in Nigeria. This information will be managed by uploading, deleting, or updating property data.
Background/Literature Review

According to Internet live stats, the number of internet users as at March 8 2015, is over 75 million, which is over 40% of the population. Nigeria population is approximately 180 million. And according to the statistics, the number of internet user growth is 16%. As of 2005, the number of internet users in Nigeria at stood over 4 million. Ten years later, the number of internet users in Nigeria are over 74 million, that is 1500% increase, which indicates that majority of the people now have access to the internet. According to Forbes, in Nigeria, the middle class families stood at 39% of the total population which is 72 million. Furthermore, there are many Nigerians abroad that will be interested in real estate located in Nigeria. Taking into account the percentage of users with internet access and the total number of middle class in Nigeria (who might be willing to buy or rent apartments) there is an astounding percentage of people who could use the system. More so, the system will not be only for the middle class who want to own apartments, it will also be for people interested in renting.
As stated earlier, there are different real estate systems in Nigeria, but the main problem is the usability and how to navigate through different pages of the system. Though they might be serving the purpose of which they were built, there are needs for improvements. The beauty of the proposed system is its user-friendliness.
Environment Set Up
The Real Estate project is a web application and there are many ways it can be developed using different application tool such as NetBeans IDE, Eclipse IDE, MySQL, JSP (Java Server Pages), Servlet, Apache Maven, JQuery and the likes. But, it is important to develop an error free and efficient, easy to use web application, that is the reason NetBeans, JSP, JQuery, Apache Tomcat, MySQL has been used to develop this project. This section illustrate how the environment was setup for successful development of Real Estate project.
Application Tools
Developing a web application requires a development tools, in this section I will explain how to download and install them and finally setting it up.
First step is to download and install all the tools needed: NetBeans IDE 8.0.2 version from Oracle website [1], MySQL Workbench 6.3 or any latest version [2], MySQL Server 5.6 [3], Apache Tomcat 8 [4].
NetBeans IDE 8 is an application development environment and is also an open source provided by Oracle Corporation [5]. It comprises of JDK (Java Development Kits) and JRE (Java Runtime Environment), unlike Eclipse IDE, NetBeans contains the needed development kit to run on a PC.
To run a web application on in NetBeans, a proper project setup has to be done by going to the File Menu ->New Project -> Java Web -> Web Application as shown below:

Figure 1 : shows how to setup web application

After that a project name is given which is RealEstateProject as shown in image below. After that the web container is been setup in this case Apache tomcat.

Figure 2 : shows the project name and storage location of the project

Figure 3 : show how apache tomcat is been added to the project.

After the Apache tomcat has been added, click finish to begin coding. In this project, External Frameworks like Spring MVC, Hibernate, Structs are not been used. I manage to accomplish this by using JSP, Servlet, Java and MySQL as the database. MySQL is an open source database, MySQL Workbench on the other hand is a unified visual tool for database architect, developers, and DBAs [2]. It provides data modeling, database designs and SQL development meanwhile, MySQL server is used to run the database.

Web Module
A web module is the smallest deployable and usable unit of web resources [6]. Java EE web module match up with a web application as defined in the Java servlet specification. Furthermore, a web module can hold up other files like a Server-side utility classes i.e. database bean, shopping cart etc. most times these classes conform to the JavaBean component Architecture, or Client- side classes such as applets and utility classes [6].
A web module has a certain structure. The top-level directory of a web module is the root document of the application. This is where JSP pages, client-side classes and archives, and static web resources, as images are stored.
The root document has a subdirectory named WEB-INF, which contains the following files and directories:
 Web.xml which is the web application deployment descriptor
 Tag library descriptor files [7]
 Classes: A directory that has server-side classes such as servlets, and JavaBeans Components
 Tags: A directory that has tag files, which are implementation of tag libraries [7]
 Lib: A directory that has JAR archives of libraries called by server-side classes
If your web module does not have any servlets, filter or listener components then it does not need a web application deployment descriptor. That is, if your web module only has JSP pages and static files then it is not necessary to include a web.xml file.
The project is packaged using WAR (web application Archive). To deploy a WAR on the Application Server, the file must have a runtime deployment descriptor. This is an XML files that contains information like the context root of the web application.

Figure 4 : shows WEB Module Structure

A web module has to be packaged into WAR in a particular deployment case and whenever you want to distribute the web module. There are several way a WAR can be package; one way is to execute the jar command in a directory laid out in the format of a web module using Ant utility or using IDE such as Eclipse or NetBeans.

MySQL configuration
After the MySQL workbench has been downloaded, there is a need for it to be properly setup on NetBeans for there to be a good communication between the IDE and MySQL. For this to happen, go to services in your NetBeans, click on the database; you will see the list of databases added in your IDE. Right click on the MySQL -> properties, a dialog box should pop up like it is shown in Figure 5 below.

Figure 5 : shows the MySQL setup in NetBeans IDE


Fill in the necessary details and click on the Admin Properties, it should look like the Figure 6 shown below.

Figure 6 : shows the admin properties setup

Fill in and locate the necessary directories usually in the MySQL bin folder. When this is done, you have successfully create a connection between MySQL and NetBeans IDE. Your database you have created should show up in the database panel of your NetBeans like this:

Figure 7 : show the database Tables

After this is done you are finally ready to start coding.


web.xml Configuration
According to the servlet 3.0 specification, annotations can be defined on certain web components, such as servlets, filters, listeners and tag handlers [9]. The Servlet element has the declarative data of a servlet [9]. The servlet-name defines the canonical name of the servlet, used to reference the servlet definition elsewhere in the deployment descriptor [9]. The servlet-mapping element define a mapping between a servlet and a URL pattern [9]. The servlet-mapping contains servlet-name and url-pattern. The servlet-name under servlet-mapping is the name of the servlet to which the URL pattern is been matched and it correspond to the name assigned to the servlet declaration tag. While, the url-pattern describe a pattern used to resolve URLs.

Figure 8 :show the web.xml config

Design Pattern
This project is developed using the 3-tier architecture. A three tier architecture is a logical, design, model which explains the three ways a client/server can communicate in a given environment. These application runs on the traditional Client/Server Model nut from an application server. Client only display the GUI and data, but has no part in producing results while, the database Server serves to few connections. This three ways are:
 The User interface which is stored in the client
 The business Application Logic Which is stored in one or more Servers
 The Data which is stored in a Database Server.

Figure 9 : show the Three-tier architecture source:

Presentation Tier
This is also known as the client or end-user. The client operate on this level, it provides the user interface (UI) [11]. Basically, this involves the use of Graphical User Interface for a smart client interaction. The main function is to interpret tasks and results to something the user can understand [13]. Just in the case of this Real Estates project, the user inputs data into the login portal and it’s the duty of the presentation to present the user with an outlook the user can relate to in terms of navigation of the site. Another instance is, when a user enters the address in the web browser and in the browser the URL is decoded into protocol that is, host name converted to IP address. Then an issue request is sent to remote server using appropriate protocol (usually HTTP).

Logic Tier
The logic Tier takes care of the application’s functionality which is done by performing detailed processing of data from presentation layer. Server such as Apache or Server Script (such as PHP) can be used to support this.
With Server (Apache or IIS) the appropriate action to be taken is identified, such as fetching a file, or passing request to an interpreter. Also it sends an output back to caller in MIME package.
With Server script interacting with server such as accessing input or generating input is done. It interprets the requests according to business rules and pass transactions from this clients, and requests appropriate data from the persistence layer. It also computes the derived data and creates HTML for the page.

Figure 10 : Source:

Data Layer
This tier consists of database servers. The interaction with the database is done using standard languages like SQL queries using database specific protocol over TCP/IP. The data structures are defined and modified themselves, the insertion, updating and deleting of data for instance. Data maintenance should be maintained with backup and recovered. Access to compilation of queries should be optimized, with indexing or replication of tables.
If we analyze any traditional project then we will find that at least 60-70 % of them has traditional N-tier, basically 3-Tier architecture. It does not matter whether it is web or windows application, we can implement 3-Tier architecture in any type of environment.
When user post any data from user interface (presentation page), data goes first to the business layer there data will be validated then validated data is posted to database layer to insert into the database.
When user request any data from the database then the request is first processed by the business layer validates the request and sends to database layer then database layer forwards it to the database server and fetches necessary records. Records found are loaded by the database layer and pass it back to the business layer then business layer passes those records to the presentation layer.

Database Schema
A database schema is the skeleton structure that represents the logical view of the entire database [15]. It explain how data is organized and how the relations among them are associated. It formulates all the constraints that are to be applied on the data.
It defines it entities and the relationship among them. A database schema contains a descriptive detail of the database, which can be depicted by means of schema diagram.

Figure 11 : Database Schema

A database schema can be divided broadly into two categories-
• Physical Database Schema – This schema pertains to the actual storage of data and its form of storage like files, indices, etc. It defines how the data will be stored in a secondary storage.
• Logical Database Schema¬ – This schema defines all the logical constraints that need to be applied on the data stored. It defines tables, views, and integrity constraints.

Relation Data Model
Relational data model is the primary data model, which is used widely around the world for data storage and processing. This model is simple and it has all the properties and capabilities required to process data with storage efficiency.
Tables – In relational data model, relations are saved in the format of Tables. This format stores the relation among entities. A table has rows and columns, where rows represents records and columns represent the attributes.
Tuple – A single row of a table, which contains a single record for that relation is called a tuple.
Relation instance – A finite set of tuples in the relational database system represents relation instance. Relation instance do not have duplicate tuples
Relation Schema – A relation schema describes the relation name (table name), attributes, and their names.
Relation key – Each row has one or more attributes, known as relation key, which can identify the row in the relation table uniquely.
Attribute domain – Every attribute has some pre-defined value scope, known as attribute domain [15].

Figure 12 : Project Database schema

The Figure 12 above shows the schematics of the database used in this project. The database consist of six tables and relationship. The user table is connected to the holdsec table on one – many relationship, while the nextofkin table is connected to user table on many- one relationship.


Advantages of 3-Tier
• Scalability
1. The Application Servers can be deployed on many machines [13].
2. The Database no longer requires a connection from every client.
3. Migration to new graphical environment is faster.
4. Easy to maintain and understand large project and complex project.
5. New validation rules can be defined any time and changes made to middle layer will not affect presentation layer.
• Re-usability
1. If a standard object is employed, the specific language of implementation of middle tier can be made transparent.
2. Since application layer is between the database layer and presentation layer so the database layer will be more secured and client will not have direct access to the database.
3. Posted data from the presentation layer can be verified or validated at application layer before updating it to the database.
• Data Integrity
1. The middle tier can ensure that only valid data is allowed to be updated in the database.
2. Easy to apply object oriented concept.
3. Easy to update data provider queries.
• Improved Security
1. Since the client doesn’t have direct access to the database, Data layer is more secure.
2. Business Logic is generally more secure since it is placed on a secured central server.
• Reduced Distribution
1. Changes to business logic only need to be updated on application servers and need not to distributed on clients
• Improved Availability
1. Mission Critical Applications can make use of redundant application servers, so it can recover from network server failures.
Disadvantage of using 3-tier architecture
• To implement even small part of application it will consume lots of time.
• Need good expertise in object oriented concept (classes and objects).
• It is more complex to build [14].
• Point of communication are doubled.





This real estate management system is accessible by all users, you can search for a property, but if a user wants to list property or post requirement, then an account must be created. In this application, there are two types of user, Admin and role user. The Admin is responsible for permission and the maintenance of the website, and it is further explained under Admin section. The role user is able to post and list property after creating an account, role user can change their password and update personal information. The Figure 13 is how the system looks like.

Figure 13 : Real Estate Management System Portal

Login Portal
The Figure 14 below is the login portal, before a user can login, you must have created an account. The login authentication is handled by JavaScript security, on clicking on the “Sign in” button, it returns a function called ValidateForm(), which is responsible for validating login fields, script alert is shown when the login field, Figure 15 shows the alert that is displayed when the login field is empty. Furthermore, the password field cannot be empty, if empty, an alert message is shown on the page (“password cannot be empty”). The login.jsp is where the function ValidateForm() as well as the html tags for and the result is the Figure 14. In a situation where the user is not registered, that can be done by clicking on the “Sign Up” link next to the Forget password. Users can also login from the home page, where the register link is at the top panel of the page.

Figure 14: Login Portal

Figure 15: Login field empty
Forget Password
The forget password is for password retrieval and it can be triggered by clicking on the forget password link. When a user clicks on the forget password link, the Figure 16 below shows the page where the user will be taken to. The user must present email ID for password retrieval, at the moment, the password retrieval is done at the backend (Database). The authentication is being handled by in-built JavaScript, on clicking the submit button, it returns a function called validate () which calls another function called validateEmail (email), the validateEmail(email) is where the email validation is done in the form of regex. An example “(/^([a-z](a-z_\.]*))”.

Figure 16: Forget Password
Registration Portal
The Figure 17 below is the registration portal page, this registration portal contains fields to be filled by the user. A user can register as an individual or as an agency. The focus on this project was limited to individual profile, therefore personal information is mandatory, as for the country, the options are limited to Nigeria and others, and the main focus is the Nigeria market. More so, the City contains only cities in Nigeria examples which are Lagos, Ibadan, Imo, etc. After filling the person information, then the user must provide login information which includes username, password and confirm password. Then there is register button which when clicked is being authenticated by JavaScript validation for “register.jsp”.

Figure 17: Registration portal

Figure 18: Successful registration

After filling the correct information and clicking on submit button, the Figure 18 above is the page user is taken to, which shows that registration is successful. A message is written under the Registration Successfully, the activation process is controlled by the admin. As an admin, you will login and authorise the registered user. As an admin, when logged in, there is a link called pending user, this is where the list of the registered users is, and it contains their user name, type, user id and the time the registration was done.
User Permission
The Figure 19 below is the pending user page. To authorise the users, as an admin, you click on one of the listed user name and the admin is taken into the particular user details.

Figure 19: Pending user permission
The Figure 20 below is how the user Mike looks like, the user status is “pending” as the admin is yet to authorise the user. The Figure 21 shows that the admin has change the pending to active from the drop down list, as there are three options: active, pending and deactivate (which is used to deactivate users).

Figure 20: User info showing pending

Figure 21: user info showing active
Furthermore, when admin has selected “active” from the drop down, the next thing is to submit by clicking on the edit button, the Figure 22 shows a pop-up after clicking on the edit button. The admin clicks on “Ok” and the admin is redirected to a page that reads user information updated successfully as you can see from Figure 23.

Figure 22: Modify user info

Figure 23: User info updated successfully
Search Page
The Figure 24 below is how the home page looks like, from the home page, users can search for properties with different criterias. The transaction type contains “Buy” and “Rent/lease”, so users have the option to select one of the two transaction types. The property type contains several types, such as residential property, apartment, terrace, bungalow, commercial property, land, office. So, users are able to select any type of property, depending on what the users are searching for. And that can also be limited down to the location. Users can also select budget and as well select the minimum bedroom for residential apartment.

Figure 24: Home Search Page
The Figure 25 below is the search criteria, the user selects the below criteria for residential property, and the location is Lagos.

Figure 25: Search criteria


Figure 26: Searched Result
The Figure 26 above is the searched result from the search criteria from the Figure 21. The results shows the list of properties according to your search criteria, more so, it shows the number of properties available according to your search.
Admin Portal
Admin is in charge of the website, it is sort of moderator. When a user registers for the first time, the user can’t sign in right away until the admin gives the user permission. That was explained earlier in this report, the admin changes the user from pending user to active user. Apart from giving permission to user, admin can also deactivate user’s account, if the user violate the website code of conduct. Furthermore, user can be reinstated back to active, depending on the offense.
The Figure 27 below is the admin portal, and it shows links to what admin can do. The report is going to go through each link and explain what it does. This image is attached here just to give a summary of how the page looks like. The links shown below is only visible to admin users, and more so, this can be controlled by giving the users the admin right, and it can also be changed from admin to normal user. Figure 19 shows the table for pending users, and on that table, there is a column for user type, there is end user and admin level, the end user is just a normal user with access to the system while the admin level users controls the system. When an end user’s user level is changed to admin level, when logged in, the user is able to see the admin links, otherwise, the links are hidden.

Figure 27 : Admin portal
Add Country
The Figure 28 below is the add country GUI, the GUI below is from addCountry class, it only contains one textbox and a button named “Save”. This add country is only visible to admin, in other words, only admin can add countries to the system. The Figure 29 is the response admin gets when a country is added. As in the Figure 29, it gives a successful response, this response is from the saveCountry class. To see the changes, as an admin, you have to logout from the system and click on register and under country options, the added country can be seen.

Figure 28 : Add Country

Figure 29 : Country added successfully
While countries can be added, it can also be edited, by deleting or editing to correct the spelling for example, and this is possible for an admin to do from UI page. The Figure 30 below is the edit page, and from testing, it is clearly that the admin has added multiple Ghana, by editing it, the admin can delete the duplicates. When a country is removed/deleted, a response in form of message is shown to the admin “Country deleted successfully”. More so, when an admin edits a country, a response message “Country edited successfully” is shown.

Figure 30 : View Country
The Figure 31 is the updated version of the view country after the admin have deleted the duplicates.

Figure 31 : updated view country
Add City
Furthermore, as the system provides add country and edit country, the same functionality is present for States and cities in Nigeria. This report will only add images for Cities, as the same logic is used for Country, states and cities. The Figure 32 below is the add cities, and this is important for the system in a situation where new states are added, as the government is planning on creating more states [17]. When a city is added by admin, a response message of “city added successfully” is shown.

Figure 32 : add City portal
Add Property and Delete Property
Admin can add more property type to the existing property type. The Figure 33 below shows how admin can add property, by filling up the name of the property type in the text box and click save. After saving it, a response of “property type added successfully” is shown to the admin.

Figure 33 : add property

The same way admin can add property, the system also gives admin the right to delete property type or edit by correcting the spelling, the Figure 34 shows the view property type, Yankos property is listed as a property type, after editing, from which the admin deletes the Yankos property type.

Figure 34 : view property type
The Figure 35 below shows the result from which the admin edits the property type. The Yankos property is no longer visible on the system.

Figure 35 : updated view property


Edit Currency

Figure 36 : Edit Currency
The Figure 36 above is the edit current page, this is where the currency can be changed, and this can only be done by the admin. The system allows admin to change to which ever currencies, and this is made possible for system flexibility. From the Figure 32 above, the admin is presented with two textboxes which always contains the default currency provided, to change the currency to USD, the system admin will have to clear both textboxes and put “Dollar” and “USD” respectively. When the edit button is clicked, there is a response message of “Current updated successfully”.
Post a property permission and approval
To post a property requirement, which doesn’t need admin permission, because it has been set to “No” on the admin page, it can be seen on Figure 37, approval needed to post is set to “No”, that way, normal user won’t require admin permission to post their requirement. This is important, it enables user to post their desired property specification. The system admin can decide to change this in future, by setting it to “yes” and by clicking on edit button, a JavaScript pop with a message “Are you sure you want to edit approval posting”, by clicking ok, a response message of “Edit approval post is successfully saved”.

Figure 37 : edit approval posting
A user is able to post a requirement by clicking on “post requirement”, from the Figure 38 below, user “Mike Ade” is signed in, if the user wants to post his requirement, the user clicks on “post requirement”, this takes user to “createPost.jsp”, the Figure 39, is where it takes the user. The user is given the opportunity to post his desired specification, from the figure, the user can select buy or rent and fill other labels accordingly. Click on the save button, a response message of “post requirement saved successfully” is shown to the user.

Figure 38 : Header links

Figure 39 : post your specification
The Figure 40 below is how the posted requirement looks like, the location of the preferred requirement, specification, budget (which is in naira) and contact details of the user is shown in tabular form on the GUI. Under the location, the type of property is specified for the user, more so, “Buy” is clearly stated there and the location in this GUI is Lagos and Imo. Furthermore, there is a delete button, this allows the user to remove the posted requirement, for two reasons: 1. a seller might have contacted the posted user, or a property similar to what the user want has been posted on the system. 2.

Figure 40 : User posted requirement
The user might have a change of mind and decides to delete it. When using the delete button, the user needs to select all application checkboxes, after which the user can click on the delete button. The delete button triggers JavaScript pop up warning message “Are you sure you want to delete this requirement(s)!” clicking on “ok” will delete the posted requirement(s) and a response message of “posted requirement deleted successfully”, while clicking on cancel will cancel the action. The Figure 41 shows the JavaScript pop up message. The Figure 42 below is just a simple JavaScript code from which the pop up is shown.

Figure 41 : Javascript pop up message

Figure 42 : JavaScript Code

Figure 43 : Change Password

The Figure 43 above shows the change password portal, this is where user can change password. The Old password is being checked from the database and it compares it to what the user provides in the Old Password textbox. When user provides new password, it is being stored in the database. The asterisk means the textboxes cannot be empty, if the user fails to fill one of the textboxes, a JavaScript alert message of “Password cannot be empty” is shown to the user. Furthermore, when password is changed, a response message of “Password changed successfully” is displayed to the user.

Application Test
This application has been tested using selenium WebDriver, is an open source testing framework for writing unit testing or integration testing and the application was tested manually.
Manual Testing
The Table below is the manual coverage of the test covered for the application. The rest of the test cases can be find in the appendix. The automation test carried out was taken from the manual test scripts.
User Story ID Name User story description Steps Expected Result Status
TS_01 Login To verify if a user can login Go to url : User should be able to access url Pass
Navigate to Login bar User able to click on Login Pass
Enter username User able to enter username into the textbox Pass
Enter password User able to enter password into the textbox Pass
Click on submit button User able to click on submit button Pass
Verify user is logged in by checking logout text on tab bar User is verified Pass

TS_02 Empty Username To verify pop up message when username text box is empty Navigate to Login User able to click on Login Pass
Leave username textbox empty Username text is empty
Enter password User entered password Pass
Click on submit button User able to click on submit button Pass
Verify that a pop up message “” is shown User is shown pop up message Pass
TS_03 Empty Password To verify pop up message when password textbox is empty

TS_04 Register link from Login page Verify user can go to registration page from login page Click on New user on login page user clicked on new user Pass
Verify the header “Registration” text Verified “Registration” text Pass

Ts_05 Forgot password link from login page Verify user can click on forgot password and takes user to forgot password page Navigate to Login bar User clicked on login bar Pass
Click forgot password Clicked on forgot password link Pass
Verify the h1 forgot password text Verified h1 text Pass

TS_06 Registration Verify user can go to registration page from registration tab Click on the registration link user clicked on the registration link Pass
Verify the header text “Registration” Verified the header text “Registration” Pass


Automation Testing
This application was tested using selenium WebDriver, it is a tool for automating web application, and often used to verify that application works as expected [16]. WebDriver is not tied to any test framework, it can be used in unit testing or integration testing. The automation script was written from the manual script, the script was written in C# on Visual Studio IDE (integrated development environment). The automation project is setup in a way that the code written are maintainable and easy to read and reuse. Once project is setup, WebDriver acts like normal library; you don’t need to start any more process before using it. The Figure 39 below is where the browser driver are called, in this setup, chrome driver was used, whenever the application is run, it opens a Chrome browser. The application can be run on Firefox or Explorer, all it requires is to create an object the driver.

Figure 44: Browser Driver
To fetch a page in selenium, the Figure 45 below is how the page gets fetched, “driver.Navifate().GoToUrl(grsUrl)” fetches the specified URL. From Figure 46, you can see the SetUp, that’s where the browser is being launched, the TearDown is where the browser is shutdown or closed after completion of testcase.

Figure 45 : Fetch Page

Figure 46: SetUp and TearDown
The Figure 47 show the method “CanLogin”, this is a positive testcase, where correct username and password is provided. The “LoginScreen.cs” class is where the script itself was written, the page is used to instantiate the class to be able to access the methods in that particular “LoginScreen.cs”.

Figure 47: Login Test
The Figure 48 below shows the status of the testcases, the green means the testcase is passed, blue means is yet to run, and while red means failed. The Figure 49 shows “Login.resx”, a resource file where all the locators are stored. It is inform of key and value, the keys are used in the script to reference the value.

Figure 48 : Status of testcases

Figure 49 : Xpath locators
In summary, automation testing is good for testing web application, it improves accuracy, and increases test coverage and most importantly, it saves time and money.
This report has been able to explain in detail how the project was carried out, which tools were used, and the figure gives pictorial understanding of what was done in the development of the project. This project is not up to market standard, but it gives an overall idea of how real estate management should be, which is easy to use.
1. Internet Live Stat
Available at:
[Accessed 5 February 2015].
2. NetBeans download
Available at:
[Accessed 5 August 2016]

3. MYSQL workbench
Available at:
[Accessed 5 August 2016]

4. MYSQL Server
Available at:
[Accessed 3 August 2016]

5. Apache Tomcat
Available at:
[Accessed 3 July 2016]

6. Oracle Corporation
Available at:
[Accessed 3 September 2016]

7. Web Module
Available at:
[Accessed 13 June 2016]

8. Tag Libraries
Available at:
[Accessed 14 July 2016]


9. MySQl Configuration
Available at:
[Accessed 23 June 2016]

10. Web Xml Deployment
Available at:
[Accessed 28 August 2016]

11. Three Tier Architect
Available at:
[Accessed 10 May 2016]

12. DBMS Architecture
Available at:
[Accessed 12 June 2016]

13. Concept of Three Tier
Available at:
[Accessed 24 June 2016]

14. Three Tier Application
Available at:
[Accessed 28 June 2016]

15. Advantages and Disadvantages
Available at:
[Accessed 23 August 2016]

16. Database Schema
Available at:
[Accessed 17 June 2016]


17. Selenium WebDriver
Available at:
[Accessed 23 June 2016]

Available at:
[Accessed 03 September 2016]







Figure 1 : shows how to setup web application 6
Figure 2 : shows the project name and storage location of the project 7
Figure 3 : show how apache tomcat is been added to the project. 7
Figure 4 : shows WEB Module Structure 9
Figure 5 : shows the MySQL setup in NetBeans IDE 10
Figure 6 : shows the admin properties setup 10
Figure 7 : show the database Tables 11
Figure 8 :show the web.xml config 12
Figure 9 : show the Three-tier architecture source: 13
Figure 10 : Source: 14
Figure 11 : Database Schema 15
Figure 12 : Project Database schema 17
Figure 13 : Real Estate Management System Portal 19
Figure 14: Login Portal 20
Figure 15: Login field empty 20
Figure 16: Forget Password 21
Figure 17: Registration portal 22
Figure 18: Successful registration 22
Figure 19: Pending user permission 23
Figure 20: User info showing pending 23
Figure 21: user info showing active 24
Figure 22: Modify user info 24
Figure 23: User info updated successfully 25
Figure 24: Home Search Page 25
Figure 25: Search criteria 26
Figure 26: Searched Result 26
Figure 27 : Admin portal 27
Figure 28 : Add Country 28
Figure 29 : Country added successfully 28
Figure 30 : View Country 28
Figure 31 : updated view country 28
Figure 32 : add City portal 29
Figure 33 : add property 29
Figure 34 : view property type 30
Figure 35 : updated view property 30
Figure 36 : Edit Currency 31
Figure 37 : edit approval posting 31
Figure 38 : Header links 32
Figure 39 : post your specification 32
Figure 40 : User posted requirement 33
Figure 41 : Javascript pop up message 33
Figure 42 : JavaScript Code 34
Figure 43 : Change Password 34
Figure 44: Browser Driver 37
Figure 45 : Fetch Page 37
Figure 46: SetUp and TearDown 37
Figure 47: Login Test 38
Figure 48 : Status of testcases 38
Figure 49 : Xpath locators 38