代写健康跟踪类桌面应用程序。
Context
In recent years, a number of vendors have introduced personal health tracking
products onto the market. These include both hardware devices such as
smartwatches (e.g. Samsung Gear), smartphones with built-in sensors (e.g.
Apple iPhone), and smart scales (e.g. FitBit Aria); as well as software
applications such as Apple Health and MyFitnessPal. Consumers often use more
than one such product. Collectively, these products can provide a useful
profile of an individual’s health; however, data integration between products
is typically very limited since each vendor wishes to promote their own
platform and ecosystem as a consumer’s “single source of truth”.
This kind of ecosystem fragmentation is not unusual. A number of products have
attempt to solve this kind of problem in other sectors. For example, the
accounting software application Xero provides a single source of truth for a
company’s financial data coming from different sources (e.g. POS, payroll,
tax), and the marketing software application Datorama provides a single source
of truth for a company’s marketing data (e.g. web analytics, social media
ads). A particularly large-scale example is ERP software applications such as
SAP, which attempts to unify data across an entire organisation.
Fitness Fanatics, the largest franchise of gyms in Australia, has hired your
team to create a software application that serve as a consumer’s single source
of truth for all their personal fitness data. They plan to release this
software application as a free bonus for all their gym members. The benefit of
having a single source of truth is the ability to analyse trends across
different data sources and present holistic reporting to stakeholders.
Therefore, one of the key selling points is that the software application will
be able to generate reports for fitness instructors and healthcare
professionals.
Basic Requirements
Functional Requirements Summary - Data Capture (DC)
By conducting some basic market research using Internet searches and other
relevant sources, as well as based on your team’s prior knowledge, identify
datasets that consumers are most likely to have access to. Some examples, to
get you started, include:
Observations from hardware devices:
- Today’s step count (pedometer) - e.g. FitBit, Samsung Gear, Apple Watch
- Today’s flights-of-stairs climbed - e.g. Samsung Gear
- Individual’s body mass index (BMI) observations over time - conventional scales
- Individual’s lean and fat mass ratio - e.g. FitBit Aria
- Resting heart rate - e.g. FitBit
- Sleep hygiene - e.g. FitBit, Samsung Gear
Observations entered by a user: - Food consumption according to major food groups
- Aerobic exercises (distance and time taken) - e.g. jogging, swimming
- Resistance exercises (mass and quantity) - various weights-training machines
- Frequency of gym attendance
- Mental wellbeing exercises (e.g. mindfulness, meditation, emotional diary)
- Last medical check-up by category (general practitioner, dentist, optometrist, etc)
Your software application needs to be able to capture all these kinds of data
through a graphical user interface (GUI). Your software application shall also
be able to update and delete entries.
Functional Requirements Summary - Data Display (DD)
By conducting some basic market research using Internet searches and other
relevant sources, as well as based on your team’s prior knowledge, identify
useful kinds of data display and analysis that could be useful to
stakeholders. Some examples, to get you started, include:
- Dashboard of overall health according to red/yellow/green ratings in various categories such as sleep, exercises, food consumption, etc.
- Graphs and charts of performance in various categories over time (e.g. frequency of gym attendance by month, average steps per day by week, total distance jogged by month, body mass trends over time, etc.)
- Benchmarking actual performance against goals set by user (e.g. goal of 10,000 steps per day on average)
Your software application needs to be able to display these forms of analysis.
There should be different views that can be generated for the consumer,
his/her fitness instructor, and his/her healthcare professional. Ideally, your
software application can generate views in both the software application’s GUI
itself (e.g. using JavaFX charts) as well as through printable reports (e.g.
PDF, DOCX, HTML).
Non-Functional Requirements (NFR)
- Your software application shall be written in Java, compatible with Oracle Java Runtime Environment version 8, and using JavaFX libraries for any GUI components.
- Your software application shall use SQLite as the database backend.
- Your software application shall perform well against criteria for usability such as Nielsen’s Usability Heuristics.
- Your software application shall have minimal issues in terms of software defects.
- The use of proper coding conventions must be applied throughout your application. This includes formatted code (e.g. correctly indented), as well as proper class, variable and method naming conventions.
Additional Functionality (AF)
Your software application should have some additional interesting/useful
functionality or feature suited to this context. This is your opportunity to
be creative and make your application ‘stand out’ against competitors on the
market!
If you cannot think of any functionalities, here are some pre-defined options
that your team choose from:
- Support for multiple user accounts
- Data import from API or CSV files generated by hardware devices such as FitBit
- Data export to CSV or JSON file
- Persuasive functionalities1 - note that you will need to provide a one-page document explaining how your application successfully implements such functionalities
Submission
This assignment submission must be accompanied by a SIGNED cover page provided
on Moodle. Please download the cover page, sign it, then scan and upload it
along with your assignment. Digital signatures are NOT allowed. Missing cover
page or cover page without proper signature will result in an automatic
penalty of 10% of the maximum marks available for the assignment.
Late Submission
Late submission of an assignment is not desirable. Assignments are to be
submitted onor beforethe due date. The late submission of assignments carries
a penalty of 10% of the awarded marks for that assignment per day of lateness
(including weekends and public holidays) unless an extension of time has been
granted by the LiC. An extension of time to complete an assignment may be
granted by the Lecturer-in-Charge in case of misadventure or illness.
Applications for an extension should be made to the Lecturer-in-Charge by
email or in person (at least) one week before the due date. You will be
required to substantiate your application with appropriate evidence such as
medical certificates, accident reports etc. Please note that workload,
work/placement commitments and computer failures are usually considered
insufficient grounds for an extension.
Other Considerations
Time Commitment
Groups are advised to allocate between 2~3 hours per week on the assignment.
However, depending on students’ knowledge of Java and tutorial attendance,
some groups may knowingly need to allocate additional time per week in order
to successfully complete the project on time. In order to minimise the time
commitment for this assignment, students should use any extra time provided
during tutorial classes to work on their group assignment. Students may only
work on the assignment during tutorial time if approved by a tutor to do so.
Group Work
Students that commit to a group and then do not honour their commitments will
lose marks. Group members are expected to work in a harmonious and
professional way. This includes appropriate management of non-performing
members and conflict management. A group ‘leader’ may be selected to help
organise group activities, but the responsibility for the group’s performance
falls on all its members. You are to report any group problems to your tutor
as early as possible. Weekly Group meetings are advised.
Learning outcomes
This assignment addresses the following learning outcomes: the application of
skills and knowledge to write and identify clear, reliable, well-structured,
and well-documented programs in Java; the evaluation and provision of
solutions for small to medium scale problems; and the application pair
programming/teamwork practices.
Tutor Assistance
Your tutor will be available to answer your questions regarding this
assignment during your tutorials. Students can also use Ed to post questions
regarding their assignment.