This project explores the benefits and functionality of creating a real estate management system that is easy to use and as well dynamic. This system is to tackle the stress of getting an apartment or housing in Nigeria, it could be to buy or to sell, more so, it could be for finding agency in order to secure an housing. These are some of the questions the system answers. The system will be built on Netbeans platform, because it is free, open source and easy to use.
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.
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.
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.
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.
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:
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.
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.
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
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:
Figure 9 : show the Three-tier architecture source: http://stackoverflow.com/questions/13786549/how-to-implement-3-tiers-architecture-in-c-sharp
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).
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: https://alitarhini.wordpress.com/2011/01/22/concepts-of-three-tier-architecture/
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.
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.
A database schema can be divided broadly into two categories-
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.
Concepts
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.
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
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.
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_\.]*))”.
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.
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 23: User info updated successfully
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.
The Figure 25 below is the search criteria, the user selects the below criteria for residential property, and the location is Lagos.
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 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.
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 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.
The Figure 31 is the updated version of the view country after the admin have deleted the duplicates.
Figure 31 : updated view country
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.
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.
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
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”.
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 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
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.
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.
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 | |||
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.
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.
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”.
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
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.
Available at: http://www.internetlivestats.com/internet-users/nigeria/
[Accessed 5 February 2015].
Available at: https://netbeans.org/downloads/index.html
[Accessed 5 August 2016]
Available at: https://www.mysql.com/products/workbench/
[Accessed 5 August 2016]
Available at: https://dev.mysql.com/downloads/
[Accessed 3 August 2016]
Available at: https://dev.mysql.com/downloads/
[Accessed 3 July 2016]
Available at: http://www.oracle.com/index.html
[Accessed 3 September 2016]
Available at: https://docs.oracle.com/javaee/5/tutorial/doc/bnadx.html
[Accessed 13 June 2016]
Available at: https://docs.oracle.com/javaee/5/tutorial/doc/bnamu.html
[Accessed 14 July 2016]
Available at: https://netbeans.org/kb/docs/ide/install-and-configure-mysql-server.html
[Accessed 23 June 2016]
Available at: http://docs.oracle.com/cd/E13222_01/wls/docs100/webapp/web_xml.html
[Accessed 28 August 2016]
Available at: http://searchsoftwarequality.techtarget.com/definition/3-tier-application
[Accessed 10 May 2016]
Available at: http://www.tutorialspoint.com/dbms/dbms_architecture.htm
[Accessed 12 June 2016]
Available at: https://alitarhini.wordpress.com/2011/01/22/concepts-of-three-tier-architecture/
[Accessed 24 June 2016]
Available at: http://www.slideshare.net/sanjeevwebx/3-tier-architecture-2410697
[Accessed 28 June 2016]
Available at: http://asp-net-by-parijat.blogspot.fi/2014/12/advantages-and-disadvantages-of-using-3.html
[Accessed 23 August 2016]
Available at: https://www.tutorialspoint.com/dbms/dbms_data_schemas.htm
[Accessed 17 June 2016]
Available at: http://www.seleniumhq.org/docs/03_webdriver.jsp
[Accessed 23 June 2016]
Available at: http://www.premiumtimesng.com/news/top-news/167988-senate-will-create-more-states-in-nigeria-david-mark.html
[Accessed 03 September 2016]
GET A HIGH QUALITY PAPER | MEANING | |
1 | Absolutely (100%) ORIGINAL with no plagiarism | |
2 | Extensively Researched | |
3 | Clear and Concise | |
4 | Perfect Grammar | |
5 | Timely Delivery. |
I would like to thanks you and I'm happy to work with you, please find new order to do the same as the previous order and same style of writing and the level moreover don't write general information try to be specific about the stated company and the tasks carried out daily. Peculiar website. This is totally what I wanted to find. Excellent work. this is my fourth order and its an excellent paper. All the requirements and instructions I provide were well addressed. Excellent Writer.
Topic: The Effects of Herbs and Spices on Blood Pressure – A Systematic Review Very well written!
Very well written! Excellent work! I am always pleased with this writer, will recommend him to anyone. Hi. Thanks. You assigned my work to the best writer!! finished work way earlier than the deadline with great quality. Strongly recommend her!! Perfect programmer Thank you for Completing my assignment on
Qualification Unit Number and Title Pearson BTEC Level 5 HND in Business Management (RQF) . That was excellent! Right here is the right site for everyone who hopes to understand a topic well.
You understand a whole lot its almost hard to argue with you. You definitely put a fresh spin on a subjects that have been written about for decades. Excellent, just great! Wonderful website. I would like to know if you could complete 200 page dissertation for me also on the same subject I posted earlier. I’d be very thankful if you could elaborate a little bit more regarding the terms and exact price. Appreciate it! This site will help the internet visitors for setting up new blog or even a blog from start to end. Thank you for helping me. Well done. Excellent service Hi. You assigned my work to the best writer!! She completed the work way before deadline with great quality. Strongly recommend her!! This is the right website for anyone who hopes to find out about any topic. You realize a whole lot its almost hard to argue with you. You definitely put a brand new spin on a topic that has been written about for decades. Wonderful stuff, just excellent! Perfect query. Thank you for setting SQL on my computer. Great work highly recommended Your writing is excellent.Keep it Up. I’m impressed, I must say. Seldom do I come across a blog that’s both equally educative and engaging, and let me tell you, you’ve hit the nail on the head. The problem is an issue that not enough men and women are speaking intelligently about. I’m very happy I found this during my hunt for something. I received the completed paper named " International relations and Development Studies Geneva".Your style is awesome, keep it up! I just received the final draft. I’m very pleased with it. The writer met my needs and exceeded the expectations. Although the paper was due next week, you guys have Completed it earlier.
I trust you more and I’ll be using this service again in the future. Excellent work.
This is my third time to be assisted by this writer. and he/she delivered an excellent paper on "2B Technologies" and followed all the requirements and instructions I provided. Responds quickly to my messages.I Will purchase again,
Thank you so much! I got this website from my friend who informed me about it and realized it is very informative. I appreciate you work on my essay. Excellent Thanks towards this colossal illuminating website, keep up the momentous undertaking I appreciate your Assistance. I got an A grade. I must say you have high quality content here. Its Great! I just went through the completed copy for "Dismantled, ornament based culture in 20th Century Vienna" . Its amazing
Very well written! I am always pleased With the services you Offer. Hello would you mind helping me on my next dissertation? Thanks for this colossal illuminating website, keep up the momentous undertaking Great work and it was really hard for me to even start. Thanks for this very illuminating website, keep up the skilled undertaking. Perfect. Thank you for the excellent work! Project: Business Data Analysis
Though its the first project, the writer did a tremendous job.
I am truly thankful for this site for sharing fantastic and very high quality content at this time. Thank you for the service. You provide High quality articles and research papers. I give you 5 star rating.
[wpadm-chat]
You cannot copy content of this page