This is a group assignment. See this spreadsheet for your groups.
No late submissions will be accepted.
This part of the assignment is about design and requirements. You will create design documents for new features and then follow a test-driven development (TDD) process by writing Cucumber tests for the missing features. In Part 2, you’ll implement the features.
You will be adding some functionality to the patient health records to integrate them with health trackers, specifically the FitBit. You’ll implement a feature as described by the following requirements:
[UC87] Upload health tracker data
The HCP is able to document and view various aspects of an office visit with a patient (per [UC11]). This documentation will now include fitness tracking data.
87.1 Preconditions:
An HCP is a registered user of the iTrust Medical Records system. The iTrust user has authenticated himself or herself in the iTrust Medical Records system.
87.2 Main Flow:
An HCP chooses a patient [S1] in order to document manually [S2] or upload a file containing [S3] fitness tracking data exported from FitBit.
87.3 Sub-flows:
[S1] The HCP enters a MID [E1] or name of a patient and confirms their selection [E2].
[S2] The HCP can select a date on the calendar and enter the following fitness data:
Calories Burned, Steps, Distance, Floors, Minutes Sedentary, Minutes Lightly Active, Minutes Fairly Active, Minutes Very Active, Activity Calories.
[S3] The HCP can upload a file export from FitBit (example here) for the patient
[S4] The HCP can click on a calendar day and view the patient’s fitness information
[S5] The HCP can click on a calendar day and edit the patient’s fitness information
[S6] The HCP can create the following summary reports:
A line graph showing step counts over a user-specified time frame. The time frame must be at least one day in length.
A line graph showing deltas in step counts over time over a user-specified time frame. For example, if day 0 has 12000 steps and day 1 has 13000 steps, then day 1 would have a delta value of +1000. If day 2 has 9000 steps, then day 2 would have a delta value of -4000.
A chart or graph of weekly step count averages
Include the following information in a wiki page(s) for HW3P1:
Design a wireframe model for displaying data.
Design a flow map for describing user experience steps in importing data and displaying it.
Identify two design patterns that you will use in your implementation.
Create a class diagram to represent the fitness data and implemented design patterns.
For the missing features, do the following:
Write Cucumber tests for the missing features. These should be failing.
Document the missing feature in GitHub issues, including expected behavior and relevant test cases
Submission will be handled via GitHub. Your final submission for the homework is your last push to the master branch of GitHub before the submission deadline. Jenkins will pull and build the project to automate part of the grading.
We expect that both partners will contribute to the assignment, which means that we expect to see at least one GitHub push for each person on the team. A team member without a GitHub push will have an automatic deduction of 15 points. The exceptions to this are 1) a documented technology problem that prevents pushing to GitHub on personal AND lab machines (notification to the teaching staff must occur at least 24 hours BEFORE the deadline); and 2) documented pair programming on the assignment. Pair programming documentation should occur in the commit messages for a push.
As with HW2, you have a GitHub repo already set up for your team. It should already show up in your GitHub repo.
Get the iTrust project into your assigned HW3 repo. Do the following:
Determine which partner's project you will be using for the assignment. That person is partner 1. The other person(s) is (are) partner 2.
Partner 1:
Clone the project from your personal repo to a local repo, if you haven't already done so.
Disconnect the iTrust project from the remote repo by right clicking on the project and selecting Team > Disconnect.
Clone your new repo (engr-csc326-spring2017/csc326-<lab>-hw3-<team#> in your Eclipse workspace.
Share your project by right clicking on the project and selecting Team > Share Project... > Git. Uncheck the box for Use or create a repository in parent folder of the project. Then select local clone location of the repo for HW3. And click Finish.
Next, right click on the project and select Team > Commit. Commit & Push.
Partner(s) 2
After partner 1 has pushed iTrust to the shared repo, you will clone the HW3 repo and import iTrust into your workspace.
Verify that your project is built on Jenkins with a green ball. This is the baseline for this homework assignment. You may need to select the build option in Jenkins if Jenkins doesn't automatically trigger the build.
Create issue(s) for your tasks (not required but encouraged!)
Use JSF for new development - starting in Summer 2016 we have been attempting to move iTrust to the JSF framework (the successor to JSP). A helpful JSF/JDBC tutorial may be found here. There are a number of resources available about JSF including on the Oracle Website. Some high-level design notes are available at the iTrust website here.
Commit frequently!
Update issue(s) as you progress!