HeaderSIS.jpg

IS480 Team wiki: 2017T2 Tetris Midterm

From IS480
Jump to navigation Jump to search
Tetris' Logo


TtMenu Home.png TtMenu About.png TtMenu Overview.png TtMenu PM.png TtMenu Docu.png


TtMenu MidtermWiki s.png


Project Progress Summary

Team Tetris is on Iteration 11, and our next milestone is Midterms on 21 February 2017. We have deployed our project online and completed 1 round of User Testing. You may download our proposal submitted for Acceptance and our Midterm presentation slide deck for your reference.

Project Highlights:

What unexpected events occurred?

1) Took 3 weeks in December break to learn Drools for Rule Engine & Quartz for timing / scheduling jobs, but didn't use them.

For Drools library, rules could be represented as String expressions and using String expressions make it more flexible when it came to customisation of the rules. In short, String expressions fit the task better than Drools.

As for Quartz, it was an inefficient way of creating a Job (task) for every single alert. It was simpler an more efficient to implement a servlet context listener which ran in the background to check for active alerts and whether escalation conditions have been achieved. The listener ran as a single job instead of multiple Quartz jobs.

2) Water sensor wasn't reliable, sponsor wanted us to focus on the customisation of the rule engine instead.
3) Addition of scope (Generic Rule Engine), which we could not do within the constraint of the project timeline and the JSON formatting received may affect the reliability & functionality of existing functions.
4) A team member wasn't available for two iterations, which affected quality of functions.
5) Delayed, but completed UT 1 due to large number of bugs; Pushed UT 2 back to after midterm, UT 3 date stays.

Project Management

Project Status:

We highlight the status of our project and also state the todo (tasks we still need to do to bring the function to 100% implementation)
You may view the function details here.

Core Functions

Function Status Confidence (0-1) Comments
Account 90% implemented. Deployed, UT done, client approved. 0.8 Assigned to Wei Liang (Lead).

Done by Samantha & Wei Liang.
Todo: Validation & Profile Photo

Caregiver Group 70% implemented. Deployed, UT done, client approved. 0.7 Assigned to Wei Liang (Lead).

Done by Samantha & Wei Liang.

Todo: Validation & Detailed Testing with Rules. Note: Changes in Use Case affected module scope in Iter 8. We had 3 meetings with the client to get her further input, in addition to consultation with her. Supervisor also present.

SMS 90% implemented. Deployed, with US$40 in Twillio account. 1.0 Assigned to Avinash.

Todo: Mobile Number Confirmation

Medication Data Retrieval & Rule Engine 100% implemented. Deployed, rules in rule engine approved by client. 0.75 Assigned to Irshad (lead), Avinash, Elliotz.

Todo: Scheduling recurring schedule using input of time only; more detailed testing & debugging

Presence Data Retrieval & Rule Engine 70% implemented. Deployed, rules in rule engine approved by client. 0.65 Assigned to Irshad (lead), Avinash, Elliotz.

Todo: More detailed testing & debugging


Movement Data Retrieval & Rule Engine 100% implemented. Deployed, rules in rule engine approved by client. 0.6 Assigned to Irshad (lead), Avinash, Elliotz.

Todo: More detailed testing & debugging

Hygiene Data Retrieval & Rule Engine (Removed) Attempted. Function removal approved by client, in presence of Supervisor. N/A Sensors had an extreme range of readings. To concentrate on other events instead.
Generic Rule Engine (Added, then subsequently Removed) Attempted. Function removal approved by client, in presence of Supervisor. N/A JSON data structure received might be different, affecting info extracted in Retrieval Module.


Average 87% 0.75


Secondary Functions

Function Status Confidence (0-1) Comments
Escalation Policy 90% implemented. Deployed, client approved. 0.8 Assigned to Avinash (Lead).

Todo: Implement a configurable time before case is escalated before Tier 1 & 2, 2 & 3 and resend to all caregivers in the group

Multiple Locations (Sensors) 0% implemented. 0.6 Assigned to Irshad (lead), Avinash, Elliotz.
Planned for a future iteration 11 & 12.
Multiple Locations (Caregivers & Caregiver Groups) 80% implemented. Deployed. Client aware. 0.8 Assigned to Irshad (lead), Avinash, Elliotz.
Planned for a future iteration 11 & 12.
Notification Logs 100% implemented. Deployed. 0.8 Assigned to Avinash (lead), Samantha.

Todo: Scheduling recurring schedule using input of time only; more detailed testing & debugging

Average 67.5% 0.75

Optional Functions

Function Status Confidence (0-1) Comments
Usability 0% implemented. 0.7 do not proceed
Analytics 0% implemented. 0.5 do not proceed
Average 0% 0.6

Project Schedule (Plan Vs Actual):

Briefly, the team believes that the project can be completed 100% fully working and deployed with 3 user testing completed by finals.

From Acceptance till Midterm, the project schedule set the sequence of features to be completed and we made sure each feature was working (main functionality of the feature) was working. We had weekly meetings with our supervisor to update progress and met with our sponsor every two weeks to make sure what we developed was what was intended. We also met the sponsor offline to ensure the work done was inline. In weeks that they were not available, we kept communication ongoing with email updates to share the team's progress.

The Scope quite greatly expanded in iteration 3 with the Generic Rule Engine feature the team ultimately deemed was not possible to complete within the constraints of this project timeline and dropped the feature in iteration 10 while we continued to find ways to make the feature possible. You may read the details of all our changes here.

Iter Planned Actual Comments
1 Planning 2 Oct 16 - 6 Oct 16 2 Oct 16 - 5 Oct 16 Zhen Hui did up the proposal in 10 pages and submitted to prof Hwee Pink, Andus, prof ben for initial vetting. Proposal included timeline, scope which the group discussed with the sponsor. ZH condensed in 2 pages and submitted the proposal. ZH did the wiki. Avinash not available.
Diagramming 2 Oct 16 - 6 Oct 16 2 Oct 16 - 6 Oct 16 Zhen Hui & Elliotz did architecture diagram & use case. Irshad did logical diagram for database SQL. Wei Liang & Samantha did the prototype and scenario, and logo for the group. Avinash not available.
Data Retrieval 7 Oct 16 - 15 Oct 16 7 Oct 16 - 15 Oct 16 Elliotz, Irshad configured the raspberry pi & gateway for acceptance. This was the gateway at that time to push the data into our system. Elliotz & Samantha also worked to store data in the client's database, setup mongodb and aws. Avinash not available.
2 Medication (frontend) 16 Oct 16 - 22 Oct 16 16 Oct 16 - 29 Oct 16 Samantha & Wei Liang did the UI. Samantha did test cases for medbox.
Medication (backend) 16 Oct 16 - 22 Oct 16 16 Oct 16 - 29 Oct 16 Zhen Hui, Elliotz, Irshad & Avinash defined the logic. Zhen Hui worked on some of the code with Irshad.
SMS 22 Oct 16 - 29 Oct 16 16 Oct 16 - 29 Oct 16 Elliotz and Avinash defined the logic to connect the trillion account. Elliotz set up the account for the group and Zhen Hui pumped in USD20 for the SMS feature. Avinash implemented the send message feature.
Acceptance Prep 28 Oct 16 - 29 Oct 16 28 Oct 16 - 29 Oct 16 Zhen Hui did the wiki & slides. Elliotz was in charge of architecture diagram and use cases, Irshad for rules, avinash for demo, wei liang for scenario and samantha for the QA and slides.
3 Caregiver Groups 30 Oct 16 - 12 Nov 16 30 Oct 16 - 12 Nov 16 Everyone defined the logic together and Zhen Hui checked understanding with the client. Further refined logic with Wei Liang. Samantha did CRUD caregiver, test cases. Elliotz ensured that the insert and pull statements work with the SQL for the caregiver info.
Escalation 30 Oct 16 - 12 Nov 16 30 Oct 16 - 12 Nov 16 Everyone defined the logic together and Zhen Hui checked understanding with the client. Avinash did further research on Lucene (tokeniser). Irshad did on Quartz (for timer), Flink (pattern recognition), Kafka (real time stream processing). Zhen Hui, Irshad & Avinash clarified with client to stick to the scope without real time, and refined what customisation meant in terms of rules, caregiver groups, escalation policy. Updated the group. The group also explored if using Drools is possible as a Business Rule Engine. Avinash & Irshad worked on coding the Escalation Policy.
Acceptance Prep (continued) 10 Oct 16 - 12 Nov 16 10 Oct 16 - 12 Nov 16 Same as previous iteration.
4 Movement (Door Event) 13 Nov 16 - 26 Nov 16 13 Nov 16 - 26 Nov 16 Zhen Hui, Elliotz, Irshad and Wei Liang worked on the logic (i.e. pseudocode). Irshad and Wei Liang worked on the code. Samantha worked on the test case.
5 Presence (Motion Sensor) 27 Nov 16 - 3 Dec 16 27 Nov 16 - 10 Dec 16 Zhen Hui, Elliotz, Irshad and Avinash worked on the logic (i.e. pseudocode). Irshad worked on the code. Samantha worked on the test case.
Hygiene Event 4 Nov 16 - 10 Dec 16 Sponsor removed the function as there was a wide range of readings, and it was not possible to benchmark our rule engine to those readings.
6 Generic Rule Engine 11 Dec 16 - 16 Dec 16 11 Dec 16 - 24 Dec 16 New Function added by sponsor in Iteration 3. Scheduled it for Iteration 6. Zhen Hui, Elliotz, Irshad and Wei Liang worked on the logic (i.e. pseudocode). Irshad, Elliotz, Irshad worked on the code. Samantha worked on the test case.
Escalation 17 Dec 16 - 24 Dec 16 11 Dec 16 - 24 Dec 16 Zhen Hui, Irshad and Avinash worked on the logic (i.e. pseudocode). Zhen Hui & Avinash pair programmed to work on the code.
Notification Logs 17 Dec 16 - 24 Dec 16 11 Dec 16 - 24 Dec 16 Zhen Hui and Avinash worked on the logic.
7 Generic Rule Engine 25 Dec 16 - 7 Jan 17 25 Dec 16 - 7 Jan 17 See previous iteration. Avinash not available.
Deployment & Testing for UT1 25 Dec 16 - 7 Jan 17 Delayed testing, Deployment done 25 Dec 16. Testing for UT1 delayed to Feb. Project deployed on EC2 by elliotz. Zhen Hui & elliotz made presentation to sensor deployment at GERI @Yishun Community Hospital
8 Collect & Condense Report from UT 1 8 Jan 17 - 11 Jan 17 UT 1 was delayed UT 1 was delayed.
Make Changes 11 Jan 17 - 21 Jan 17 11 Jan 17 - 21 Jan 17 Zhen Hui implemented evaluation form for the project (see above for pdf). Irshad & Avinash fixed bugs where occasionally, all rules will not trigger alerts, escalation of the issue was not done at regular intervals with quartz, implementing streams to remove inefficient loops, etc. Wei Liang improved on his door event -note: Weiliang was doing backend because of role reassignment due to Avinash's unavailability earlier.. Samantha refined the UI - create elderly data, account, roles, caregiver etc.
9 Multiple Caregiver Groups 22 Jan 17 - 30 Jan 17 22 Jan 17 - 4 Feb 17 Wei Liang worked on the frontend to ensure the groups could be created for support multiple elderly data, accounts and caregiver roles.
Prepare for UT2 31 Jan 17 - 2 Feb 17 - UT2 was delayed
Bug Fixes 2 Jan 17 - 4 Feb 17 31 Jan 17 - 4 Feb 17 Samantha fixed bugs in UI in relation to the escalation policy.
10 Prepare for UT2 10 Feb 17 - 14 Feb 17 - UT2 was delayed.
Prepare for UT1 5 Feb 17 - 9 Feb 17 5 Feb 17 - 14 Feb 17. Samantha prepared the team for UT1. UT 1 conducted 15 Feb 17.

Project Metrics:

You may view the Schedule metrics here.

Project Risks:

Risk Probability Impact Mitigation
Unavailability of Team Member High High (now it is medium) Meeting at Member’s Home

Team & Peer Evaluation (3 times)
Open Table Discussion
Feedback

Technical Risk High High (now it is medium) Sharing & Pair Programming
Scope Creep Low (now it is medium) High We evaluated that the increase in scope was doable and we planned this new scope (Generic Rule Engine) for 2 iterations (4 weeks) to work on. Plus, we dropped one of the 4 events. We attempted the Rule Engine, but the result was not what the sponsor wanted, and it wasn't very good since the data input will be variable and could affect our existing functions. We eventually decided to drop this scope and worked to refine our existing 3 events to make them customisable.

During our weekly meetings, scope would be refined and the team makes changes to the project. Thus, the probability of the scope creep is now medium.

Technical Complexity:

Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.

Quality of product

We designed a Notification Platform for Caregivers. The main plus points of our project are:
1) Customisable parameters in the Rules (vs. rules which have parameters that are fixed.)
2) Escalating Alerts that notify a specific number of Caregivers (vs alerts that notify all the Caregivers or the elderly - intrusive)
3) Caregiver Groups (Each elderly has a own set of rules, and specific group of caregivers that take care of him)

Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.

Intermediate Deliverables:

Current Iteration: 11

Stage Specification Modules
Project Management Minutes Minutes for Sponsor (Iterations - 0, 1, 2, 3, 4, 5, 6, 7, 9, 10) & Supervisor (Iterations - 5, 6, 7, 8, 9, 10)
Metrics Schedule & Bug metrics & Risks
Scope Overview, Scope & Changes
Minimizing Teaming Issues (Form) Project Evaluation, Individual Evaluation & Learning Outcome, Organising Meetings at the Team Member's Place, Open Table Discussion, Feedback
Analysis & Design Use Case Use Case
Architecture Diagram Architecture Diagram (scroll down)
Prototyping Lo-fi, Hi-fi
Explanation Video (done in Iter 8) Part 1, 2 (embedded in a pptx slide due to wiki constraints)
Testing User test plan

Deployment:

Tetris' Project is on deployed Amazon EC2. SMS alerts are configured using the Twillio Service. Login credentials are required.

Testing:

Describe the testing done on your system. For example, the number of user testing, tester profile, test cases, survey results, issue tracker, bug reports, etc.