Sie sind auf Seite 1von 5

Monash University

FIT5046 Mobile and Distributed Computing Systems

Practical Assignment Phase 2 2017 (Semester 1)


The assignment is an individual assignment with a total of 30 marks.

Due Dates & Demonstrations/Interviews:

This assignment consists of completing 6 tasks.


The submission is due on Friday Week 9 (5th of May) by 3pm.
Demos/interviews will be held in the Tutorials in Week 10 and 11 (you should book a time with
your tutor). Without an interview, the assignment mark will be zero.

An overview
The Phase 2 of the assignment is an implementation of an Android mobile app called
MonashFriendFinder to help students with finding new university friends.

In Phase 1, you created a database and a RESTful web service to enable querying the data and updating
it. The RESTful web service provided services such as subscribing new students, storing profiles,
matching profiles, or creating friendships.

In Phase 2 (this assignment), you will implement an Android application. The Android application will
be the mobile client and consume the RESTful Web Service that you developed in Phase 1 in NetBeans.
It will also invoke other public web APIs.
Using the Android app, first each student needs to subscribe and provide some personal and study-
related (profile). The app will enable the student to search for friends based on matching multiple
attributes (common interests). They can add or delete friends. They can start using the app to locate
other students nearby on a map with matching profiles.

Task 1: Invoking public web APIs (5 marks):


You will invoke and consume three public APIs:
a) A weather API will be used to provide current weather information for your location (example
APIs below, but you can find and use any other weather API). You need to call the right API and
pass the right parameters, and then parse the JSON response to retrieve the current temperature.
The weather information will be displayed in the home/main page of the Android app. (2 marks)
Open Weather Map http://www.openweathermap.org/api
World Weather Onlines weather http://www.worldweatheronline.com/api/
Dark Sky API https://darksky.net/dev/

b) You will invoke Google Custom Search API to get a brief description of the favourite movie.
This information will be used in Task 4c. In your query, you need to make the best use of Google
APIs query parameters to improve the results. You also need to add the sites in the custom search
engine that are related to this query. The returned results should be filtered by removing any
irrelevant information and parts, hyperlinks and characters like . (2 marks)
c) You also need to use Google API to obtain the official picture/image of the movie. (1 mark)
Task 2 Android Client of RESTful WS (2 marks):

a) You need to create an android application client that will connect to the server and consume the
RESTful web service created in Phase1. You need to make http connections using
HttpURLConnection to invoke all the methods required for completing tasks in this assignment. (1
mark)
b) Accessing data and executing all the queries from the server side (and the web service) should be
achieved using the AsynchTask approach. (1 mark)

Task 3 Login, Subscription, and Main Screen (6 marks):


The Android client application will have several screens:

a) The login screen enables subscribed students to login, and also allows them to go to the subscription
screen to new users. The login data will include the student email (as username) and password. This
data will be verified with the data stored in the server-side database during login. You need also to
provide Skip Login for a subscribed student. (1 mark)
b) The passwords should not be sent in clear to the server-side database. You need to hash the
password on the client side using the right libraries in Java. (1 mark)
c) The subscription screen to enter the student profile information (for the first time user). In this
screen, you need to use spinners (dropdown lists) for most of the attributes, except for name,
address, favourite movie, current job, email, password (and re-enter password). For the gender you
can also use radio buttons. For DoB, you need to use a date picker (a calendar widget to pick a
date). Data entry validation and error messages should be implemented where necessary. (2.5
marks)
d) The home or main page this page should display a title (app name), a relevant image, and current
date and time, and the temperature (weather) based on the student current location (this is part of
Task 1). The main page should also show the student name and welcome the student. The main
page will use navigation drawer and fragments to navigate to other screens. (1.5 mark)

Task 4 Editing Records and Search Screen (7 marks):


a) The screen for updating profiles. After the student subscribed, they should be able to edit their
profile. The changes should be reflected to the server-side database. (1 mark)
b) The search screen should allow the student to select multiple matching attributes (these should be
any combinations of attributes and not a fixed number) from a multi spinner (that allows multiple
selection of items) and view a list of other students who meet these criteria with their information
(this will invoke REST matching methods). You need to design this screen such that all the details
of matching students will not clutter the screen. (2.5 marks)
c) When viewing the information about the matched students in the list, the search screen should
allow the student to select any favourite movie of a matched student (if you do not know about
this movie) and the app will display its image and details using Google APIs as mentioned in Task
1. (1.5 mark)
d) The search screen should allow the student to add any matching student as a Friend. The new
friend/s should be added to the server-side database. (1 mark)
e) The friends screen should allow the student to view the list of his/her current friends and delete
any of them. The changes should be reflected to the server-side database. (1 mark)
Task 5 Local Storage (2 marks):

a) You need to store part of the data locally on the mobile phones SQLite database (at least one table).
You decide on what data is suitable for local storage (e.g. a list of countries or languages that could
be used to populate the spinners in the subscription screen). (1 mark)

b) You also need to store some data using SharedPreferences and decide on what data to store.
SharedPreferences are generally suitable for small set of key-value pairs. (1 mark)

Task 6 Maps (4 marks):


a) The search screen will allow the student to navigate to a map screen where the matching students
will be shown on a map. The map will show the current location of the student and all the matching
students using two different marker colours or symbols to differentiate between them. When the
student taps on a marker, it should show the matching student details. (2marks)
b) The friends map screen will show the current location of the student and all his/her current friends.
When the student taps on a friend marker, it should show the friend details. (1 mark)

o The friends map screen allow the user to select a distance (e.g. 1 km) from a list and only
show the friends who are within that radius the map. Your database should include the data
that will satisfy this feature during the interview/demo. (1 mark)

You can use MapQuest or Google maps to complete Task 6.

Task 7 Reports (4 marks):


The Report screen: this screen will enable to generate two types of reports.

a) Common attributes pie graph screen: this screen will show a pie chart that shows all the favourite
units of all the subscribed students in the Profile table based on their frequency. The labels and
percentages should be shown on the chart. You need to make sure you have more than 3 different
units stored in the database (2 marks)

b) Location bar chart screen: this screen will allow the student to enter a starting date and an
ending date to create a bar chart showing the number of visits that the student has made to all the
places (frequency) during that period. Here we will not consider linger time for simplicity. Prior to
this task, you need to programmatically convert latitude and longitude values into addresses,
and then convert addresses into places if applicable (2 marks).
Additional Marking Criteria
Only completing a task does not yield a HD mark. There are 6 other criteria for marking each task.
For a full mark of any task, all the following criteria should be achieved:
1. High quality of design and programming/coding (e.g. high cohesion, loose coupling, ,
separation of concerns, bug free, solid exception handling, following coding standards,
proper and meaningful naming of variables and methods, efficient use of variables, etc)
2. Handling all the exceptions and user data entry validation
3. Excellent GUI interface and layout and navigation
4. Evidence of originality and creativity of student (going beyond the assignment specification),
5. Full functionality of all the operations (during the interview),
6. and students deep understanding of their code and the program logic
Not meeting any of these criteria can result in mark deduction

Submission Guideline:
A ZIP file will be uploaded to Moodle by deadline including the following files (any missing file in
the zip file will result in mark deduction up to 2 marks from your total marks):

1. Include the signed cover sheet.


2. The Netbeans and Andriod projects including all the packages and classes and files.
3. You need to provide screenshots of all your screens in ONE word document in a proper
order with a title (NOT each as a separate file).
4. The zip file should have this name: FIT5046Assign2-[studentsurnname]-[studentid]-[tutor
name].zip
Late Submission:
Late Assignments or extensions will not be accepted unless you submit a special consideration form
and provide valid documentation such as a medical certificate prior to the submission deadline (NOT
after). Otherwise, there will be 5% penalty per day including the weekends.

PLEASE NOTE.
Before submitting your assignment, please make sure that you haven't breached the University
plagiarism and cheating policy. It is the student's responsibility to make themselves familiar with the
contents of these documents.
Please also note the following from the Plagiarism Procedures of Monash, available at
http://www.policy.monash.edu/policy-bank/academic/education/conduct/plagiarism-procedures.html
Plagiarism occurs when students fail to acknowledge that the ideas of others
are being used. Specifically it occurs when:
other peoples work and/or ideas are paraphrased and presented without a reference;
other students work is copied or partly copied;
other peoples designs, codes or images are presented as the students own work;
Lecture notes are reproduced without due acknowledgement.

Das könnte Ihnen auch gefallen