操作系统代写 | FIT5046 Android Practical Assignment (30%)
• The assignment is an individual assignment.
• This assignment requires an interview.
• Demos/interviews will be held in the labs or during the consultation times in Week 11 and 12 (you
should book a time with your tutor)
• This assignment requires submitting Android project files AND a document including the
screenshots of each screen according to the order listed in this document.
• The marks allocated for all the tasks in this assignment will add up to 100 marks and it is worth
30% of the total mark for this Unit.
Due Date: The submission is due on Friday 14th
May by 3 pm.
This assignment achieves the following learning outcomes of the unit:
• identify and describe different approaches and methods for building distributed and mobile
• evaluate several models and approaches and select suitable mobile computing solution to a
• propose and develop a mobile distributed system that is appropriate to a problem domain;
Personalised Mobile Pain Diary
The Android practical assignment aims towards building a mobile and distributed, personalised pain
diary application that enables individuals to record their pain experience and related factors such as
their pain intensity level, pain location, physical activities (or number of steps taken daily) and mood.
It allows users to view daily, weekly and monthly reports and monitor their health and progress. These
reports can help the individual as well as their doctor to better understand their condition and the
relationships between the environmental variables such as their pain intensity and weather.
The mobile app will interact with the public web APIs (e.g. weather public APIs) to retrieve relevant
and useful information.
The assignment MUST be implemented in Android Studio 11.
Task 1 Sign in and Sign up (10 marks):
Basic level (5 marks)
a) The sign-in screen (one screen) enables existing users to sign in AND a button to navigate to the
sign-up screen so a new user can sign up (register).
The sign-in screen will allow existing users to enter their username (email) and password to login.
The sign-up (register) screen will allow a new user to enter an email and a password and then
click on a Sign up/Register button. After the user is successfully registered, they can be directed to
the sign-in screen to login using their registered email and password. Data entry validation and error
messages should be implemented where necessary. (3 marks)
b) To create the user interface for the sign-in and sign-up screens, you need to follow two password
design guidelines and two form guidelines (refer to the mobile user interface lecture). (2 marks)
Advanced level (5 marks)
c) You need to use Firebase authentication for signing in existing users, and for signing up
(registering) new users. You need to make sure all the functionalities of sign-in and sign-up work
without any issues at run-time. (5 marks)
During the interview, you need to login to your Firebase account and under Authentication show
the account of existing user(s).
Task 2 Home screen (15 marks):
Basic level (7 marks)
a) The home screen should display a related and meaningful title and picture1
. (1 mark)
b) The main page will use the Navigation component of Jetpack and the navigation drawer for
navigation to other screens (destinations). These destinations (fragments) include Pain Data Entry,
Daily Record, Reports and Maps. All the functionalities must be implemented and work without
any issues at run time. (6 marks)
Advanced level (8 marks)
c) The home screen will also show the current temperature, humidity and pressure (aka
atmospheric/barometric pressure) for Melbourne your current location (city) that will retrieved from
the public weather APIs using Retrofit. (8 marks)
Task 3 Pain Data Entry (20 marks):
The pain data entry screen will allow the user to enter their pain intensity level, pain location, mood
level and steps every day as described below:
Basic level (10 marks)
a) The user will enter a pain intensity level, a value between 0 and 10 according to the Numeric
Rating Scale (NRS). The NRS scale provides patients with a scale where the ‘zero’ means no pain
and ‘ten’ represents the upper limit, the worst possible pain. The scale can be created using different