HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2017T2 Tetris Midterm"

From IS480
Jump to navigation Jump to search
(Updated project progress)
(Added the midterm slides pdf)
 
(27 intermediate revisions by 2 users not shown)
Line 25: Line 25:
 
Team Tetris is on Iteration 11, and our next milestone is Midterms on 21 February 2017.
 
Team Tetris is on Iteration 11, and our next milestone is Midterms on 21 February 2017.
 
We have deployed our [http://default-environment.bxypxxac43.ap-southeast-1.elasticbeanstalk.com/login.jsp project online] and completed 1 round of User Testing.
 
We have deployed our [http://default-environment.bxypxxac43.ap-southeast-1.elasticbeanstalk.com/login.jsp project online] and completed 1 round of User Testing.
You may download our [https://wiki.smu.edu.sg/is480/File%3AIS480TetrisAY16-17T2Proposal.pdf proposal] submitted for Acceptance and our Midterm presentation slide deck for your reference.
+
You may download our [https://wiki.smu.edu.sg/is480/File%3AIS480TetrisAY16-17T2Proposal.pdf proposal] submitted for Acceptance and our Midterm presentation [https://wiki.smu.edu.sg/is480/img_auth.php/7/7d/Tetris_Midterm.pdf slide deck] for your reference.
  
Highlight changes since project acceptance.
+
===Project Highlights:===
 +
 
 +
What unexpected events occurred?<br />
 +
 
 +
<p>1) Took 3 weeks in December break to learn Drools for Rule Engine & Quartz for timing / scheduling jobs, but didn't use them.</p>
 +
<p><i>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. </i></p>
 +
<p><i>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.</i></p>
 +
 
 +
2) Water sensor wasn't reliable, sponsor wanted us to focus on the customisation of the rule engine instead.<br />
 +
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. <br />
 +
4) A team member wasn't available for two iterations, which affected quality of functions. <br />
 +
5) Delayed, but completed UT 1 due to large number of bugs; Pushed UT 2 back to after midterm, UT 3 date stays. <br />
 +
 
 +
==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)<br/>
 +
You may view the function details [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Management here].
 +
 
 +
<b>Core Functions </b><br/>
 +
{| border="1"
 +
|- style="background:grey; color:white"
 +
||Function
 +
|align="center"|Status
 +
|align="center"|Confidence (0-1)
 +
|align="center"|Comments
 +
|-
 +
 
 +
|| Account
 +
|| 90% implemented. Deployed, UT done, client approved.
 +
|| 0.8
 +
|| Assigned to Wei Liang (Lead). <br/>
 +
Done by Samantha & Wei Liang. <br/>
 +
Todo: Validation & Profile Photo
 +
|-
 +
 
 +
|| Caregiver Group
 +
|| 70% implemented. Deployed, UT done, client approved.
 +
|| 0.7
 +
|| Assigned to Wei Liang (Lead). <br/>
 +
Done by Samantha & Wei Liang. <br/>
 +
<p>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.</p>
 +
|-
 +
 
 +
|| SMS
 +
|| 90% implemented. Deployed, with US$40 in Twillio account.
 +
|| 1.0
 +
|| Assigned to Avinash. <br/>
 +
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. <br/>
 +
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. <br/>
 +
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. <br/>
 +
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.  
  
Describe the project progress briefly here. Have the project continued as planned? If not, is the team confident to complete? This is a crossroad for the team to make a decision. Proceed with confident or file an incomplete.
 
  
===Project Highlights:===
+
|-
 +
|| <b>Average</b>
 +
|| <b>87%</b>
 +
|| <b>0.75</b>
 +
||
  
What unexpected events occurred?<br />
+
|}
  
1) Took 3 weeks to learn Drools for Rule Engine & Quartz for timing / scheduling jobs<br />
 
  
2) Water sensor wasn't reliable, sponsor wanted us to focus on the customisation of the rule engine instead. <br />
+
<b>Secondary Functions </b><br/>
 +
{| border="1"
 +
|- style="background:grey; color:white"
 +
||Function
 +
|align="center"|Status
 +
|align="center"|Confidence (0-1)
 +
|align="center"|Comments
 +
|-
  
3) A team member wasn't available for two iterations<br />
+
|| Escalation Policy
 +
|| 90% implemented. Deployed, client approved.
 +
|| 0.8
 +
|| Assigned to Avinash (Lead). <br/>
 +
Todo: Implement a configurable time before case is escalated before Tier 1 & 2, 2 & 3 and resend to all caregivers in the group
 +
|-
  
4) Delayed UT 1 due to large number of bugs; Pushed UT 2 back, UT 3 date stays. <br />
+
|| Multiple Locations (Sensors)
 +
|| 0% implemented.
 +
|| 0.6
 +
|| Assigned to Irshad (lead), Avinash, Elliotz. <br/>Planned for a future iteration 11 & 12.
 +
|-
  
==Project Management==
+
|| Multiple Locations (Caregivers & Caregiver Groups)
 +
|| 80% implemented. Deployed. Client aware.
 +
|| 0.8
 +
|| Assigned to Irshad (lead), Avinash, Elliotz. <br/>Planned for a future iteration 11 & 12.
  
Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.
+
|-
 +
|| Notification Logs
 +
|| 100% implemented. Deployed.
 +
|| 0.8
 +
|| Assigned to Avinash (lead), Samantha. <br/>
 +
Todo: Scheduling recurring schedule using input of time only; more detailed testing & debugging
  
===Project Status:===
+
|-
 +
|| <b>Average</b>
 +
|| <b>67.5%</b>
 +
|| <b>0.75</b>
 +
||
  
Highlight changes to modules, the completion status (implemented, user testing done, client approved, deployed, etc), the confidence level (0-1 where 0 is no confident of getting it done, 1 is 100% confident in getting it done) and comments (who has been assigned to do it, new scope, removed scoped, etc). Please use a table format to summarize with links to function details.
+
|}
  
 +
<b>Optional Functions </b><br/>
 
{| border="1"
 
{| border="1"
|- style="background:blue; color:white"  
+
|- style="background:grey; color:white"  
||Task/function/features, etc
+
||Function
 
|align="center"|Status
 
|align="center"|Status
|align="center"|Confident Level (0-1)
+
|align="center"|Confidence (0-1)
|align="center"|Comment
+
|align="center"|Comments
 +
|-
 +
 
 +
|| Usability
 +
|| 0% implemented.
 +
|| 0.7
 +
|| do not proceed
 
|-
 
|-
  
|| Customer CRUD
+
|| Analytics
|| Fully deployed and tested 100%
+
|| 0% implemented.
|| 1
+
|| 0.5
|| Fiona
+
|| do not proceed
 
|-
 
|-
  
|| Trend Analytic
+
|-
|| 25%
+
|| <b>Average</b>
|| 0.9
+
|| <b>0%</b>
|| Ben is researching analytic algoritms
+
|| <b>0.6</b>
 +
||  
 +
 
 
|}
 
|}
  
 
===Project Schedule (Plan Vs Actual):===
 
===Project Schedule (Plan Vs Actual):===
  
Compare the project plan during acceptance with the actual work done at this point. Briefly describe a summary here. Everything went as plan, everything has changed and the team is working on a new project with new sponsors or the supervisor is missing. A good source for this section comes from the project weekly report.
+
Briefly, the team believes that the project can be completed 100% fully working and deployed with 3 user testing completed by finals.
  
Provide a comparison of the plan and actual schedule. Has the project scope expanded or reduced? You can use the table below or your own gantt charts.
+
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 [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Change_Management here].
  
 
{| border="1"
 
{| border="1"
|- style="background:blue; color:white"  
+
|- style="background:grey; color:white"  
|| Iterations
+
|| Iter
 
|colspan="2" align="center"| Planned
 
|colspan="2" align="center"| Planned
 
|colspan="2" align="center"| Actual
 
|colspan="2" align="center"| Actual
Line 85: Line 209:
 
|-
 
|-
  
|rowspan="2"| 1
+
|rowspan="3"| 1
|| Customer CRUD
+
|| Planning
|| 1 Sept 2010
+
|| 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.
 +
|-
 +
 
 +
|rowspan="4"| 2
 +
|| Medication (frontend)
 +
|| 16 Oct 16 - 22 Oct 16
 
||
 
||
|| 25 Aug 2010
+
|| 16 Oct 16 - 29 Oct 16
|| Fiona took the Sales CRUD as well.
+
|| 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.  
 
|-
 
|-
  
|| Trend Analytic
+
|| SMS
|| 1 Sept 2010
+
|| 22 Oct 16 - 29 Oct 16
 
||  
 
||  
|| 15 Sept 2010
+
|| 16 Oct 16 - 29 Oct 16
|| Ben is too busy and pushed iteration 1 back
+
|| 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.
 
|-
 
|-
  
|rowspan="2"| 2
+
|| Acceptance Prep
|| User tutorial
+
|| 28 Oct 16 - 29 Oct 16
|| 1 Oct 2010
+
||  
|colspan="2"|  
+
|| 28 Oct 16 - 29 Oct 16
|| Removed proposed by Ben
+
|| 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.
 
|-
 
|-
  
|colspan="2"|  
+
|rowspan="3"| 3
|| Psycho analysis
+
|| Caregiver Groups
|| 1 Oct 2010
+
|| 30 Oct 16 - 12 Nov 16
|| New module proposed by sponsor
+
||
 +
|| 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.
 +
|-
 +
 
 +
 
 +
|rowspan="1"| 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.
 +
|-
 +
 
 +
 
 +
 
 +
|rowspan="2"| 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.
 +
|-
 +
 
 +
|rowspan="3"| 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.
 +
|-
 +
 
 +
|rowspan="2"| 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
 +
|-
 +
 
 +
|rowspan="2"| 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.
 +
|-
 +
 
 +
|rowspan="3"| 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.
 +
|-
 +
 
 +
|rowspan="2"| 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:===
 
===Project Metrics:===
  
Summary of analysis for the metrics collected. You may refer to another page for the details about the metrics and how it is collected.
+
You may view the Schedule metrics [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Metrics here].
  
 
===Project Risks:===
 
===Project Risks:===
 
Update the proposal assumptions and risks. Describe what you learn from the risk update and mitigation steps taken.
 
  
 
{| border="1"
 
{| border="1"
|- style="background:blue; color:white"  
+
|- style="background:grey; color:white"  
 
|align="center" width="150px"| Risk  
 
|align="center" width="150px"| Risk  
 
|align="center"| Probability
 
|align="center"| Probability
Line 129: Line 412:
 
|-
 
|-
  
|width="150px"| Sponsor want to use Joomla instead of Drupal
+
|width="150px"| Unavailability of Team Member
 
|| High
 
|| High
|| High
+
|| High (now it is medium)
|| Team evaluating Joomla to write an impact analysis report
+
|| Meeting at Member’s Home <br/>
 +
Team & Peer Evaluation (3 times) <br/>
 +
Open Table Discussion <br/>
 +
Feedback <br/>
 +
|-
 +
 
 +
|width="150px"| Technical Risk
 +
|| High
 +
|| High (now it is medium)
 +
|| Sharing & Pair Programming
 +
|-
 +
 
 +
|width="150px"| 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. <br/>
 +
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.
 
|-
 
|-
  
|width="150px"| Sponsor deployment machine approval and support
 
|| High
 
|| Medium (now it is low)
 
|| Use UPL machine
 
 
|}
 
|}
 
Be sure to prioritize the risks.
 
  
 
===Technical Complexity:===
 
===Technical Complexity:===
Line 149: Line 442:
 
==Quality of product==
 
==Quality of product==
  
 +
We designed a Notification Platform for Caregivers. The main plus points of our project are:<br/>
 +
1) Customisable parameters in the Rules (vs. rules which have parameters that are fixed.) <br/>
 +
2) Escalating Alerts that notify a specific number of Caregivers (vs alerts that notify all the Caregivers or the elderly - intrusive)<br/>
 +
3) Caregiver Groups (Each elderly has a own set of rules, and specific group of caregivers that take care of him)<br/>
 +
<br/>
 
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.
 
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:===
 
===Intermediate Deliverables:===
  
There should be some evidence of work in progress. 
+
Current Iteration: 11<br/>
  
 
{| border="1"
 
{| border="1"
|- style="background:blue; color:white"  
+
|- style="background:grey; color:white"  
 
|align="center"| Stage  
 
|align="center"| Stage  
 
|align="center"| Specification
 
|align="center"| Specification
Line 162: Line 460:
 
|-
 
|-
  
|rowspan="2"| Project Management
+
|rowspan="4"| Project Management
 
|| Minutes
 
|| Minutes
|| Sponsor weeks -10 -5 3 7 Supervisor weeks -2 3 5 7
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Minutes Minutes for Sponsor (Iterations - 0, 1, 2, 3, 4, 5, 6, 7, 9, 10) & Supervisor (Iterations - 5, 6, 7, 8, 9, 10)]
 
|-
 
|-
 
 
|| Metrics
 
|| Metrics
|| Bug metrics
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Metrics Schedule & Bug metrics] & [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Risk_Assessment Risks]
 
|-
 
|-
 
+
|| Scope
|| Requirements
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Overview Overview], [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Scope Scope] & [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Project_Change_Management Changes]
|| Story cards
 
|| [http://www.agilemodeling.com/artifacts/userStory.htm CRUD Customer], [http://www.agilemodeling.com/artifacts/userStory.htm Trend Analytic]
 
 
|-
 
|-
 
+
|| Minimizing Teaming Issues
|rowspan="4"| Analysis
+
|| [https://wiki.smu.edu.sg/is480/img_auth.php/e/e3/Internal_Project_Evaluation.pdf (Form) Project Evaluation, Individual Evaluation & Learning Outcome], [https://wiki.smu.edu.sg/is480/img_auth.php/0/0c/Meeting_1111.docx Organising Meetings at the Team Member's Place], Open Table Discussion, Feedback
|| Use case
 
|| [http://en.wikipedia.org/wiki/Use_case_diagram overall]
 
|-
 
 
 
|| System Sequence Diagram
 
|| [http://en.wikipedia.org/wiki/System_Sequence_Diagram client], [http://en.wikipedia.org/wiki/System_Sequence_Diagram server]
 
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Business_Process_Modeling_Notation Business Process Diagram]
+
|rowspan="4"| Analysis & Design
|| Here
+
|| Use Case
 +
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Documentation Use Case]
 
|-
 
|-
  
|| Screen Shots
+
|| Architecture Diagram
|| CRUD Customer, Trend Analysis
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Documentation Architecture Diagram (scroll down)]
 
|-
 
|-
  
|rowspan="2"| Design
+
|| Prototyping
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T2_Tetris_Prototype Lo-fi, Hi-fi]
|| 1, 2, 3
 
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Class_diagram Class Diagram]
+
|| Explanation Video (done in Iter 8)
|| [http://en.wikipedia.org/wiki/Class_diagram 1], [http://en.wikipedia.org/wiki/Class_diagram 2], [http://en.wikipedia.org/wiki/Class_diagram 3]
+
|| [https://wiki.smu.edu.sg/is480/img_auth.php/e/e0/Tetris_usecase17_pt1.pptx Part 1], [https://wiki.smu.edu.sg/is480/img_auth.php/6/64/Tetris_usecase17_pt2.pptx 2] (embedded in a pptx slide due to wiki constraints)
 
|-
 
|-
 
  
 
|| Testing
 
|| Testing
 
|| User test plan
 
|| User test plan
|| [[IS480_Midterm_Wiki#Testing: | instructions]]
+
||  
 
|}
 
|}
 
Not all parts of the deliverables are necessary but the evidence should be convincing of the progress. Try to include design deliverables that shows the quality of your project.
 
  
 
===Deployment:===
 
===Deployment:===
  
In an iterative approach, ready to use system should be available (deployed) for client and instructions to access the system described here (user name). If necessary, provide a [[IS480_Final_Wiki#Project_Deliverables: | deployment diagram link]].
+
Tetris' Project is on [http://default-environment.bxypxxac43.ap-southeast-1.elasticbeanstalk.com/login.jsp deployed] Amazon EC2. SMS alerts are configured using the [https://www.twilio.com/login Twillio] Service. Login credentials are required.  
  
 
===Testing:===
 
===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.
 
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.
 
==Reflection==
 
 
In this section, describe what have the team learn? Be brief. Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.
 
 
===Team Reflection:===
 
 
Any training and lesson learn? What are the take-away so far? It would be very convincing if the knowledge is share at the wiki [[Knowledge_base | knowledge base]] and linked here.
 
 
===Benjamin Gan Reflection:===
 
 
You may include individual reflection if that make sense at this point. The team is uncooperative and did not follow my instructions.
 

Latest revision as of 15:07, 21 February 2017

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.