Reference no: EM132726969
COMP1424 Mobile Application Development - University of Greenwich
Detailed Specification
Please read the entire coursework specification before starting work.
Estate agents are looking for new ways to interact with vendors and potential buyers/tenants. You are to create a mobile app for use by estate agents. Properties can be added to the app and sent for publication so that vendors can have access to them. The app is to be called madPropertyPal and will allow estate agents to record property details and do full property searches to show potential buyers/tenants. The features the app should support are given below:
• Features a) to e) are to be implemented as a native Android app coded in Java.
• Features f) and g) are to be implemented as a hybrid app coded using Cordova.
• Feature g) can be implemented as either or both additions to the native android app or Cordova app.
Your final app is the culmination of all your hard work on this course, which should become a strong addition to your programming portfolio. You should produce an app that is well-designed, robust and useful. The GUI design should be clean, simple to navigate, and operate smoothly without sluggishness or crashes. The app should not require instructions or a manual to use.
1. Description of the application
a) Enter details of properties for sale or rent:
Note that users must be able to enter all of the following fields. Required fields mean that the user must enter something in this field; otherwise they will be prompted with an error message. Optional fields mean that the user can enter something if they wish, but they will not get an error message if nothing is entered.
The user should be able to enter:
• Property Name and Number - Required field
• Type - Required field (eg. Apartment, House, Bungalow, etc.)
• Lease Type - Required field (eg. Freehold, leasehold, Short let, Long let, etc.)
• Location - Required field
• Number of Bedrooms - Required field
• Number of Bathrooms - Required field
• Size - Required field
• Asking Price - Required field
• Local Amenities - Optional field
• Description - Optional field (brief description of property and local area)
• Two or more other fields of your own invention - be creative!
The app will check the input and if the user doesn't enter anything in one of the required fields, the app should display an error message.
Once the details have been accepted by the app (e.g. no required fields were missing), it should display the details back to the user for confirmation and allow them to go back and change any details that they wish.
b) Store, view and delete property details or reset the database
All the details entered by the user should initially be stored on the device in an SQLite database.
The user should be able to list all the details of all properties that have been entered into the app, edit or delete individual properties, and delete all the details from the database.
c) Add reports about viewings to a property
Estate Agents will be able to enter details about buyer / tenant offers. They should be able to select a property and then add the following details:
• Date of viewing - this is a required field (ideally this should default to the current date).
• Interest - Required field (eg. "Firm", "Conditional", "Considering", "Not Interested", etc.)
• Offer price - Optional field
• Offer expiry date - Optional field
• Conditions of Offer - Optional field
• Viewing comments - Optional field
The user must be able to enter multiple viewings for a single property, e.g. to report on different visits by potential buyers / tenants.
The app should store all details entered on the device in an SQLite database.
It should be possible for a user to select a property and display all viewing and/or offers. It is not necessary to upload reports on viewings to the web service (feature e)).
d) Search (10%)
The user should be able to search for a property in the database by property name and number. At its simplest, this could mean entering the name and number and displaying the first property that matches. Ideally the user should be able to enter the first few letters of the name and display all matching properties.
Advanced search options will allow searching for all properties with the following criteria: a particular area, type, or number of bedrooms. It should be possible for a user to select an item from the resulting search list and to display its full details.
e) Upload details to a cloud-based web service (10%)
The user should be able to upload all the basic details of properties stored on the mobile device to a cloud-based web service. It should be possible for all properties to be uploaded at once. YOU DO NOT NEED TO WRITE the web application as it will be made available to you.
The format of the response
The web service will respond with an HTTP response containing JSON which represents a reply to your upload. The JSON reply will contain the following fields:
field name value
uploadResponseCode A code indicating whether or not your upload was successful. Values are
either SUCCESS or FAILURE. If the code is FAILURE the message field will contain more information about what went wrong.
userid The same userId that was included in the upload message
number The number of records uploaded
names The names of the records uploaded
message A message giving more information about what happened. Particularly important if the uploadResponseCode is not SUCCESS
An example response is given below. Note that the order of the fields may vary
{"uploadResponseCode":"SUCCESS", "userid":"wg999",
"number":2,
"names":"19 Chelsea Cloisters, 70 Point Hill", "message":"successful upload - all done!"}
Your app should display the data sent in the response. You could just display the raw JSON message, but it would be better to format the output to make it more readable for the user.
f) Create a cross-platform prototype of the app using Cordova
Implement as much as you can of features a) using Cordova.
g) Implement persistence using Cordova
Implement as much as you can of features b) using Cordova.
h) Add additional features to either or both the Android or Cordova version of the app
Features a) to e) are the core requirements for the app. If you have implemented these and want to add some additional features, then you may. Any enhancements should be implemented in addition to NOT instead of the core requirements. The idea is that these features stretch your skills, so be prepared to do your own research and feel free to show off! You can think of your own enhancements. Here are some possible examples:
• Allow photos taken by the camera to be added to the data stored
• Pick up the location automatically from the user's location
• Show the location of a property on a map
• Make use of an external web service other than the one provided for the coursework.
• Anything you can think of - again be creative!
2. Report
Write a report consisting of all the following sections:
• Section 1. A concise table containing a checklist of the features you have been able to implement. Please refer to the features list given above in the specification. For example, you might write:
Feature Implementation
a) Fully implemented
b) Fully implemented
c) I have created the user interface for data entry but the data is not being stored ?
d) Implemented but the app throws an exception if no matching result is found.
e) Fully implemented
f) I have create a Cordova prototype of feature a)
g) Features b) were not implemented in the Cordova prototype
h) No additional features implemented
• Section 2. A concise list of any bugs and/or weaknesses in your app(s). It is unlikely that there are no bugs or weaknesses but if you don't think there are any then say so. Bugs that are declared in this list will lose you fewer marks than ones that you don't declare!
• Section 3. A brief (less than half a page) description of any special strengths of your app(s) that you think should be taken into account in awarding a mark. Please be very specific and realistic in this: vague statements such as "it is easy to use" or "it is well designed" will not gain you marks.
• Section 4. Screen shots demonstrating each of the features that you have implemented. Give captions or annotations to explain which features are being demonstrated.
• Section 5. (10%) An evaluation of your app(s). Write between 700 to 1000 words evaluating the app(s) that you have produced. Be specific and justify any statements you make. Just saying things like "my app is well designed" without justifying the statement will not gain you any marks. Also, explain how your app could be improved. Again, you need to try to be specific e.g. saying something like "It needs to be made more secure by adding security features" will not gain marks. Your evaluation should include, but need not be limited to, the following aspects of your app:
i. Human computer interaction (you will have a lecture about this)
ii. Security (you will need to research this yourself)
iii. Ability of the app to run on a range of screen sizes and how this could be improved (we will touch on this in the course but you will need to do additional research)
iv. Changes that would need to be made in order for the app(s) to be deployed for live use
This sort of discussion will form an important part of your MSc project report so use this opportunity as a way of practicing your skills in writing an evaluation.
Attachment:- Mobile Application Development.rar