HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2015T2 spirITus Midterm Wiki"

From IS480
Jump to navigation Jump to search
 
(45 intermediate revisions by 4 users not shown)
Line 37: Line 37:
 
<!-- Content goes here -->
 
<!-- Content goes here -->
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Slides and </b></font><font color= #FFFFFF> Links</font></div>
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Slides and </b></font><font color= #FFFFFF> Links</font></div>
*Visit our application [http://connectus.das.org.sg <u>here!</u>]<br>
+
*View our midterm presentation slides [https://wiki.smu.edu.sg/is480/img_auth.php/3/3c/MidtermPresentation_v4.pdf <u>here!</u>]]
*View our midterm presentation slides [[:File: .pdf| <u>here!</u>]]<br>
+
*Visit our deployed application [http://connectus.das.org.sg <u>here!</u>]<br>
 +
<b>Note:</b>
 +
As our application has a SMS functionality which would incur cost. Kindly send us an email to request for a login credential for testing purposes.
  
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Project </b></font><font color= #FFFFFF> Progress Summary</font></div>__NOTOC__
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Project </b></font><font color= #FFFFFF> Progress Summary</font></div>__NOTOC__
Line 45: Line 47:
  
 
Unexpected events that have occurred:
 
Unexpected events that have occurred:
*One member was removed from the team as she did not met the prerequisite for IS480
+
*Our designer was removed from the team as she did not met the prerequisite for IS480
*Jeanne Tan resigned from DAS
+
*Change of POC (Point of Contact)
 
*Some change of requirements after the handover
 
*Some change of requirements after the handover
  
 
*List of changes:  
 
*List of changes:  
**"Contact us" communication feature instead of real-time chat function
+
**Communication feature was changed to a form of 'Post" instead of real-time chat function
 
**Addition of SMS notification as a good to have additional functionality
 
**Addition of SMS notification as a good to have additional functionality
**Calendar function on Desktop was reconsidered and implemented after Sponsor Test 2
+
**Timetable view on Desktop was reconsidered and implemented after Sponsor Test 2
 
**Took the December term break to learn php and understand the laravel framework
 
**Took the December term break to learn php and understand the laravel framework
 +
**Addition of "contact us" feature in application for users to provide feedback
  
 
*Some problem faced:
 
*Some problem faced:
Line 62: Line 65:
  
 
Number of planned iterations: <b><u>13</u></b><br>
 
Number of planned iterations: <b><u>13</u></b><br>
Number of iteration completed: <b><u>8</u></b>
+
Number of iteration completed: <b><u>7</u></b>
*Current iteration: <b><u>9</u></b>
+
*Current iteration: <b><u>8</u></b>
 
Number of iterations left: <b><u>5</u></b><br>
 
Number of iterations left: <b><u>5</u></b><br>
 
Complete Testing: <b><u>4</u></b>
 
Complete Testing: <b><u>4</u></b>
Line 78: Line 81:
  
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Project </b></font><font color= #FFFFFF> Management</font></div>
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Project </b></font><font color= #FFFFFF> Management</font></div>
 +
 
==Functionality and Scope==
 
==Functionality and Scope==
  
 
{| class="wikitable" style="margin: auto;width:50%; text-align:left"; scope="col"
 
{| class="wikitable" style="margin: auto;width:50%; text-align:left"; scope="col"
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Functionalities
+
! style="font-weight: bold;background: #DBA901;color:#000000; width:75px" | Functionalities
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Progress
+
! style="font-weight: bold;background: #DBA901;color:#000000; width:200px" | Progress in Task completion
 
|-
 
|-
 
| Primary
 
| Primary
Line 88: Line 92:
 
|-
 
|-
 
| Secondary
 
| Secondary
| <b>100%</b>
+
| <b>90%</b>
 
|-
 
|-
 
| Tertiary
 
| Tertiary
| <b>70%</b>
+
| <b>80%</b>
 
|-
 
|-
 
| Good-to-have
 
| Good-to-have
| <b>0%</b>
+
| <b>30%</b>
 
|-
 
|-
 
|}
 
|}
 +
 
==Functionalities achieved==
 
==Functionalities achieved==
  
Line 124: Line 129:
 
|-
 
|-
 
| Classroom Module
 
| Classroom Module
| Teachers can mark attendance, guardians can view child;s attendance
+
| Teachers can mark attendance, guardians can view child's attendance
 
| 1
 
| 1
 
|-
 
|-
 
| Feedback Module 1  
 
| Feedback Module 1  
| Teachers can mark attendance, guardians can view child;s attendance
+
| Teachers can mark attendance, guardians can view child's attendance
 
| 1
 
| 1
 
|- <ITERATION 4>
 
|- <ITERATION 4>
Line 155: Line 160:
 
| Communication Module 2
 
| Communication Module 2
 
| Teachers can create announcements for class. Guardian can get notifications on child's progress
 
| Teachers can create announcements for class. Guardian can get notifications on child's progress
| 1
+
| 0.75
 
|-
 
|-
 
| Rewards Module
 
| Rewards Module
| Teachers can award points to students ans student can view their awarded points
+
| Teachers can award points to students and student can view their awarded points
 
| 1
 
| 1
 
|- <ITERATION 6>
 
|- <ITERATION 6>
Line 168: Line 173:
 
| Rewards Module
 
| Rewards Module
 
| Gamification techniques and concepts changes to make it more engaging.
 
| Gamification techniques and concepts changes to make it more engaging.
| 1
+
| 0.75
 
|-
 
|-
 
| Feedback Module 1
 
| Feedback Module 1
 
| Teachers can generate student profile, attendance statistics including assessments
 
| Teachers can generate student profile, attendance statistics including assessments
| 1
+
| 0.75
 
|- <ITERATION 7>
 
|- <ITERATION 7>
 
|  rowspan="3" | 7
 
|  rowspan="3" | 7
 
| Forum Module
 
| Forum Module
 
| All users can post queries in forum
 
| All users can post queries in forum
| 1
+
| 0.75
 
|-
 
|-
 
| rowspan="2" |Feedback Module 2
 
| rowspan="2" |Feedback Module 2
Line 189: Line 194:
 
| Feedback Module 2
 
| Feedback Module 2
 
| Teachers can opt to send generated reports to email accounts
 
| Teachers can opt to send generated reports to email accounts
| 1
+
| 0.75
 
|}
 
|}
  
Line 200: Line 205:
 
|- <ITERATION 9>
 
|- <ITERATION 9>
 
| 9
 
| 9
| UI Enhancement
+
| UI Enhancement, Validations
| UI Enhancement for Mobile and Desktop site
+
| UI Enhancement and more comprehensive validations for Mobile and Desktop site
 
|-
 
|-
 
|- <ITERATION 10>
 
|- <ITERATION 10>
 
| 10
 
| 10
 
| Security  
 
| Security  
| Security features to prevent spam to email accounts
+
| Rate Limiting
 
|-
 
|-
 
|}
 
|}
Line 212: Line 217:
  
 
==Project Schedule==
 
==Project Schedule==
Our team has made very minimal changes to schedule, most of the changes were implemented during the planned iterations. The most notable changes were the change in functionality requirement, the communication module. Our client conducted their own trials and wanted a 'contact us' form for parents to communicate with the teachers. They also told us to focus more on the mobile development in December 2014 as they wanted to use our application in January for trials.
+
Our team has made very minimal changes to schedule, most of the changes were implemented during the planned iterations. The most notable changes were the change in functionality requirement, the communication module. Our client conducted their own trials and wanted a 'contact us' form for parents to communicate with the teachers. We were informed to focus more on the mobile development in December 2014 as DAS wanted to use our application in January for trials.
  
 
====Planned Schedule====
 
====Planned Schedule====
Line 229: Line 234:
  
 
[[File: SpirITus Schedule Metrics.jpg| 600px ]]<br>
 
[[File: SpirITus Schedule Metrics.jpg| 600px ]]<br>
Status: Good standing
+
Current Status: <b>Good standing</b>
  
{| class="wikitable" style="margin: auto;width:100%; text-align:center"; float:left;"
+
{| class="wikitable" style="margin: auto;width:100%; text-align:center"
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Iteration
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Iteration
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:70px" | Planned Days
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:70px" | Planned Days
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:70px" | Actual Days
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:70px" | Actual Days
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Score
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Score
! style="font-weight: bold;background: #DBA901;color:#000000; width:300px" | Actions Taken
+
! style="font-weight: bold;background: #DBA901;color:#000000; width:300px" | Remarks / Actions Taken
 
|-
 
|-
 
| 1
 
| 1
Line 242: Line 247:
 
| 35
 
| 35
 
| 100%
 
| 100%
| None. We are on schedule
+
| None. We are on schedule.
 
|-
 
|-
 
| 2
 
| 2
Line 248: Line 253:
 
| 26
 
| 26
 
| 81%
 
| 81%
| Used one buffer day to complete planned functionality in iteration.
+
| <b>Reasons:</b> Learning curve in learning new frameworks and integrating libraries resulted in slower-than expected-progress in development.<br>
 +
Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.
 
|-
 
|-
 
| 3
 
| 3
Line 254: Line 260:
 
| 27
 
| 27
 
| 78%
 
| 78%
| Used two buffer day to complete planned functionality in iteration.
+
| <b>Reasons:</b> All members are still learning the new language and framework. Coupled with other academic commitments, the difficulty in developing back-end logic for student attendance-taking in PHP resulted in minor delays in task completion.<br>
 +
Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.
 
|-
 
|-
 
| 4
 
| 4
 
| 21
 
| 21
| 21
+
| 20
| 100%
+
| 105%
 
| None. We are on schedule.
 
| None. We are on schedule.
 
|-
 
|-
 
| 5
 
| 5
 
| 14
 
| 14
| 14
+
| 15
| 100%
+
| 93%
| None. We are on schedule.
+
| <strong>Reasons:</strong> Our designer left the group, and existing work had to be reassigned to other members.<br>
 +
Used one buffer day to complete planned functionality in iteration. No need for adjustment of scope.
 
|-
 
|-
 
| 6
 
| 6
 
| 14
 
| 14
| 19
+
| 16
| 74%
+
| 88%
| Used one buffer day to complete planned functionality in iteration.
+
| <b>Reasons:</b> Change of POC, handover of management to Sree. There were also new suggestions of additional functionalities by the directors, which led to some major changes in the database structure.<br>
 +
Used two buffer days to complete planned functionality + new requirements in iteration. Extend iteration till the tasks are completed. Adjust the dates of the subsequent iteration to match the use of buffer days.
 
|-
 
|-
 
| 7
 
| 7
| 14
 
| 14
 
| 100%
 
| None. We are on schedule.
 
|-
 
| 8
 
 
| 14
 
| 14
 
| 14
 
| 14
Line 292: Line 295:
  
 
===Bug Metrics===
 
===Bug Metrics===
[[File: | 600px ]]<br>
+
[[File: Bugsiteration.PNG|700px]] [[File: Bugs_metricsgraph.PNG|550px]]<br>
  
{| class="wikitable" style="margin: auto;width:50%; text-align:left; float:left;"
+
{| class="wikitable" style="margin: auto;width:100%; text-align:left"
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Iteration
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Iteration
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Low
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:50px" | Low
Line 314: Line 317:
 
| 0
 
| 0
 
| 1
 
| 1
| Bug fixing to be done after finals
+
| Used debugging time to debug.
 
|-
 
|-
 
| 3
 
| 3
 +
| 4
 +
| 1
 
| 2
 
| 2
| 0
+
| 29
| 0
+
| Used debugging time + one buffer day to debug.
| 2
 
| Bug fixing to be done after finals
 
 
|-
 
|-
 
| 4
 
| 4
| 4
+
| 1
 
| 3
 
| 3
| 4
+
| 1
| 59
+
| 26
| Previous bugs were fixed at start of iteration to prevent accumulation of bugs. Some bugs were fixed immediately upon logging (by the same member who found it). Requested to use two days of buffer to debug. Managed to clear all outstanding bugs within buffer time
+
| Bugs were fixed during testing and debugging time. No buffer time required.
 
|-
 
|-
 
| 5
 
| 5
| 6
+
| 4
| 2
+
| 1
 
| 0
 
| 0
| 16
+
| 9
| Some bugs were fixed immediately upon logging as it affects the coding of related functions. Used one buffer day to debug high-severity bugs
+
| Bugs were fixed during testing and debugging time.
 
|-
 
|-
 
| 6
 
| 6
| 5
+
| 8
| 1
+
| 4
 
| 0
 
| 0
| 10
+
| 28
| Used planned buffer time to debug.
+
| Used debugging time to debug. One outstanding UI bug to be fixed in later iteration due to low importance. Used one buffer day to debug.
 
|-
 
|-
| 7
 
| 5
 
| 3
 
| 1
 
| 30
 
|Some bugs were fixed immediately upon discovery/logging as it affects the coding of related functions (lesson feedback, dashboard). No buffer time used.
 
|-
 
| 8
 
 
| 7
 
| 7
 
| 4
 
| 4
| 0
 
| 27
 
|All bugs resolved before Sponsor Test 2; no buffer time used
 
|-
 
| 9
 
 
| 1
 
| 1
 
| 1
 
| 1
| 1
+
| 19
| 16
+
| Bugs were fixed during testing and debugging time.
|Used planned buffer time to debug.
+
|-
 
|-
 
|-
 
|}
 
|}
Line 371: Line 361:
  
 
==Technical Complexity==
 
==Technical Complexity==
{| class="wikitable" style="margin: auto;width:50%; text-align:left; float:left;"
+
{| class="wikitable" style="margin: auto;width:100%; text-align:left; float:left;"
! style="font-weight: bold;background: #DBA901;color:#000000; width:20px" | S/N (highest complexity to lowest)
+
! style="font-weight: bold;background: #DBA901;color:#000000; width:20px" | S/N
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Technical Description
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Technical Description
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Remarks
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Remarks
 
|-
 
|-
 
| 1
 
| 1
|  
+
| PDF Generation of reports
| 0
+
| Getting things displayed nicely in a single page in the pdf.Special symbols and font embedding issues. Transformation of database records data to the display format required.
 +
|-
 +
| 2
 +
| Attendance taking
 +
|Transformation of database records data to the display format required
 +
|-
 +
| 3
 +
| Lesson Feedback and makeup
 +
| There are many client changes as to how lesson feedback and make ups are to be recorded. Resulting in frequent database schema changes.
 +
|-
 +
| 4
 +
| Speeding up notifications (mass emails, sms.etc)
 +
| To reduce the wait of teachers when publishing new announcements to guardians. The team has to learn about how to use a message queue. This is quite a challenge as more than 1 member have yet taken the Enterprise Integration module yet.
 
|-
 
|-
 
|}
 
|}
Line 386: Line 388:
  
 
==Risks==
 
==Risks==
{| class="wikitable" style="margin: auto;width:70%; text-align:left; float:left;"
+
{| class="wikitable" style="margin: auto;width:75%; text-align:center; float:center;"
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Risk
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Risk
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Probability
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Probability
Line 392: Line 394:
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Mitigation
 
! style="font-weight: bold;background: #DBA901;color:#000000; width:100px" | Mitigation
 
|-
 
|-
| Steep learning curve in exploring new frameworks and languages with 3rd party libraries, such as SMS integration and email notifications
+
| Steep learning curve in exploring new frameworks, libraries and programming languages, such as SMS integration, E-mail sending, the Laravel framework and generation of PDF reports
 
| High
 
| High
 
| High
 
| High
| We will seek help from learning sessions and watching videos on the know-how to integrate it in our application. After much work about, we became more familiar with the use of such libraries and framework.
+
| We will seek help from web resources (tutorials, videos) on how to implement it in our application. After many hours of effort and studying, we gradually became more familiar with the use of such libraries and frameworks.
 
|-
 
|-
| There were sudden change in requirement due to results analysis by client by their own trials, such as the communication method using the application
+
| Sudden changes in requirements, such as the communication methods available using the application, which arose after analysis of the results of their own trials
 
| High
 
| High
 +
| High
 +
| We will seek advice from our supervisor and inform her about the new changes. We will proceed to implement the changes if it does not delay the completion of the project.
 +
|-
 +
| Juggling our academic workload in tandem with FYP when there are difficult tasks in a particular iteration
 
| Medium
 
| Medium
| We will seek advice from supervisor and inform her on the new changes. We proceed with the change if it does not delay the completion of the project.
+
| Low
 +
| We will seek advice from seniors and read up on best practices on how we can utilize the framework chosen to make coding more efficient. Working long hours into the night was common as we tried not to exceed the planned iteration days.
 
|-
 
|-
| Juggling other academic workload when the tasks in a particular workload is heavy.
+
| There is a possibility that we may send out too many emails and get banned temporarily by Gmail, if we exceed their daily email sending limits (2000 for premium accounts, 100-500 for normal accounts)
 
| Medium
 
| Medium
| Low
+
| Medium
| We will seek advice from seniors and read up on best practices on how we can utilize the framework chosen to make coding less mundane. Working long hours into the night was prevalent as we try not to exceed the planned iteration days.
+
| Make use of a reputable transactional e-mail service such as Mandrill, which allows up to 12,000 free emails per month. The team has also set up Mailgun, an alternative e-mail service such that in the unlikely event that we exceed Mandrill's free limits for a month, the team will also be able to switch to Mailgun without much hassle. It offers 10,000 free emails per month, which isn't too bad as well.
 
|-
 
|-
 
|}
 
|}
Line 414: Line 421:
  
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Quality </b></font><font color= #FFFFFF> of Product</font></div>
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>Quality </b></font><font color= #FFFFFF> of Product</font></div>
 +
 
==Intermediate Deliverables==
 
==Intermediate Deliverables==
  
Line 423: Line 431:
 
|-
 
|-
  
|rowspan="2"| Project Management
+
|rowspan="3"| Project Management
 
|| Meeting Minutes
 
|| Meeting Minutes
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Meeting_Minutes Meeting Minutes]
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Meeting_Minutes Meeting Minutes]
 
|-
 
|-
 
 
|| Schedule and Bug Metrics
 
|| Schedule and Bug Metrics
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Metrics_Management Metrics]
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Metrics_Management Metrics]
 +
|-
 +
|| Project Scope
 +
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Project_Scope Scope / Functionalities]
 
|-
 
|-
  
|| Analysis
+
|rowspan="3"| Analysis
|| Use Case and Architecture Diagrams
+
|| Architecture Diagrams
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Project_Documentation Diagrams]
+
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Project_Documentation Architecture Diagrams]
 +
|-
 +
|| ER Diagram
 +
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Project_Documentation ER Diagram]
 +
|-
 +
|| Use Case
 +
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_Project_Documentation Use Case Diagram]
 
|-
 
|-
 
 
|| Design
 
|| Design
 
|| Prototypes
 
|| Prototypes
Line 447: Line 462:
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_User_Testing Test Results]
 
|| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_spirITus_User_Testing Test Results]
 
|}
 
|}
 
 
<div style="clear: both;"></div>
 
<div style="clear: both;"></div>
 
<br>
 
<br>
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>R</b></font><font color= #FFFFFF>eflection</font></div>
 
<div style="background: #DBA901; padding: 20px; font-family:Century Gothic; line-height: 0.1em; text-indent: 15px; letter-spacing:-0.1em; font-size:25px"><font color=#000000><b>R</b></font><font color= #FFFFFF>eflection</font></div>
 
==Team Reflection==
 
==Team Reflection==
After spending so much time together coding, working and debugging, we have learnt a lot about each other's strengths and weaknesses, and how we use that knowledge to support each other. For example, ...
+
 
 +
*Exploring a new language and framework
 +
*how the use of technologies solve trivial business problem
 +
*Handling a project involving a business entity and managing it well
 +
*Balancing expectations.
 +
*Effective time Management juggling IS480 commitments with other projects etc.
 +
*Conflict Management and resolution strategies
 +
*Staying positive and always have the end in mind
 +
 
 +
==Individual Reflection==
 +
 
 +
<strong>Project Manager: Tan Zheng Ming, Kenneth</strong>
 +
*Effective communication between stakeholders involved in project
 +
*Manage conflict and expectations effectively
 +
*Planning of technical tasks is often complex and subjected to changes
 +
*Establish effective collaboration by allocating tasks / resources appropriately
 +
 
 +
<br>
 +
<strong>Lead Designer: Chua Chong Thee</strong>
 +
*Adapting to changes during development
 +
*Designing with the end users in mind
 +
*Difficult to have a design that can satisfy everyone
 +
*Perseverance is key
 +
 
 +
<br>
 +
<strong>Lead Developer: Lan Ziming</strong>
 +
* Many helpful people online willing to help you learn.
 +
* See beyond the surface, sometimes I wanted to use a service but it's either paid or comes with a very limiting free plan as stated on their website. However when I decide to email some of them telling them that I'm a student or doing it for a social cause, I'm surprised that some are actually willing to let me use their paid plans for free just because I'm a student or doing something that benefit others.
 +
* I have also learn to be more people orientated. As IT students, we often think about doing what's technically the most impressive, scalable, cleanest solution. However it is also important to consider people. The best solution is often not what best fit the problem theoretically . But one that also consider the people and conditions around you (team mates, clients, supervisor, context.etc).
 +
* Lastly, I learnt that taking care of one health is very important. So as to last longer.
 +
<br>
 +
<strong>System Analyst: Chen Weifang</strong>
 +
*Adapting and working with members with different working styles
 +
*Breaking down the algorithm into smallest parts possible and be meticulous
 +
*Measure the trade-off of each possible solutions vs obvious solution
 +
*Picking up a new language is not complex as long as one has the interest to learn
  
 
<br>
 
<br>
 +
<strong>QA Analyst: Chan Qianru</strong>
 +
*Be open to feedbacks by users
 +
*Knowing what the end users want is important to solve any problem
 +
*Good designs often make people have a lasting impression of the application
 +
*Responsiveness and real-time will make systems more user friendly

Latest revision as of 16:20, 3 March 2015

WELCOME TO

Official spirITus Logo.png


Home

 

About Team spirITus

 

Project Overview

 

Project Management

 

Project Documentation

 
Slides and Links
  • View our midterm presentation slides here!]
  • Visit our deployed application here!

Note: As our application has a SMS functionality which would incur cost. Kindly send us an email to request for a login credential for testing purposes.

Project Progress Summary

Project Highlights

Unexpected events that have occurred:

  • Our designer was removed from the team as she did not met the prerequisite for IS480
  • Change of POC (Point of Contact)
  • Some change of requirements after the handover
  • List of changes:
    • Communication feature was changed to a form of 'Post" instead of real-time chat function
    • Addition of SMS notification as a good to have additional functionality
    • Timetable view on Desktop was reconsidered and implemented after Sponsor Test 2
    • Took the December term break to learn php and understand the laravel framework
    • Addition of "contact us" feature in application for users to provide feedback
  • Some problem faced:
    • Learning curve for email function for notification was higher than expected
    • Technical complexities during integration

Schedule Updates

Number of planned iterations: 13
Number of iteration completed: 7

  • Current iteration: 8

Number of iterations left: 5
Complete Testing: 4

  • Acceptance
  • UAT 1
  • Sponsor Test 1
  • UAT 2
  • Sponsor Test 2

Milestones left: 4

  • Midterm
  • Poster
  • Finals
  • Poster Day
Project Management

Functionality and Scope

Functionalities Progress in Task completion
Primary 100%
Secondary 90%
Tertiary 80%
Good-to-have 30%

Functionalities achieved

Iteration Module Functions / Comments Confidence
1 Admin and accounts UI UI using jQuery mobile. Coincides with IDP 1
2 Account Module Teacher account can View, create and search 1
Parent Account UI for reports, events and chats 1
3 Accounts Module Creation of profiles. Entity profiling 1
Classroom Module Teachers can mark attendance, guardians can view child's attendance 1
Feedback Module 1 Teachers can mark attendance, guardians can view child's attendance 1
4 Feedback Module 1 Guardians can view child's education progress 1
Communication Module 1 Teachers and parents are able to send message to each other 1
Search and Filter Module Teachers can search for student by name 1
5 Accounts Module 1 Admin account have CRUD access, able to reset password 1
Classroom Module Teachers, students and guardians can view lessons/ scheduled plans 1
Communication Module 2 Teachers can create announcements for class. Guardian can get notifications on child's progress 0.75
Rewards Module Teachers can award points to students and student can view their awarded points 1
6 Desktop rollout Desktop UI and Accounts CRUD implementation 1
Rewards Module Gamification techniques and concepts changes to make it more engaging. 0.75
Feedback Module 1 Teachers can generate student profile, attendance statistics including assessments 0.75
7 Forum Module All users can post queries in forum 0.75
Feedback Module 2 Student can view their attendance statistics 1
Teachers' dashboard showing class activities and student reports(Desktop) 1
8 Feedback Module 2 Teachers can opt to send generated reports to email accounts 0.75

Functionalities To Be Achieved

Iteration Module Functions / Comments
9 UI Enhancement, Validations UI Enhancement and more comprehensive validations for Mobile and Desktop site
10 Security Rate Limiting


Project Schedule

Our team has made very minimal changes to schedule, most of the changes were implemented during the planned iterations. The most notable changes were the change in functionality requirement, the communication module. Our client conducted their own trials and wanted a 'contact us' form for parents to communicate with the teachers. We were informed to focus more on the mobile development in December 2014 as DAS wanted to use our application in January for trials.

Planned Schedule

IS480 Timeline(New).png

Dated: December 2014

Actual Schedule

IS480 Timeline caa 23022015.jpg

Dated: February 2015

Project Metrics

Schedule Metrics

SpirITus Schedule Metrics.jpg
Current Status: Good standing

Iteration Planned Days Actual Days Score Remarks / Actions Taken
1 35 35 100% None. We are on schedule.
2 21 26 81% Reasons: Learning curve in learning new frameworks and integrating libraries resulted in slower-than expected-progress in development.

Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.

3 21 27 78% Reasons: All members are still learning the new language and framework. Coupled with other academic commitments, the difficulty in developing back-end logic for student attendance-taking in PHP resulted in minor delays in task completion.

Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.

4 21 20 105% None. We are on schedule.
5 14 15 93% Reasons: Our designer left the group, and existing work had to be reassigned to other members.

Used one buffer day to complete planned functionality in iteration. No need for adjustment of scope.

6 14 16 88% Reasons: Change of POC, handover of management to Sree. There were also new suggestions of additional functionalities by the directors, which led to some major changes in the database structure.

Used two buffer days to complete planned functionality + new requirements in iteration. Extend iteration till the tasks are completed. Adjust the dates of the subsequent iteration to match the use of buffer days.

7 14 14 100% None. We are on schedule.


Bug Metrics

Bugsiteration.PNG Bugs metricsgraph.PNG

Iteration Low High Critical Total Score Actions Taken
1 0 0 0 0 No actions required.
2 1 0 0 1 Used debugging time to debug.
3 4 1 2 29 Used debugging time + one buffer day to debug.
4 1 3 1 26 Bugs were fixed during testing and debugging time. No buffer time required.
5 4 1 0 9 Bugs were fixed during testing and debugging time.
6 8 4 0 28 Used debugging time to debug. One outstanding UI bug to be fixed in later iteration due to low importance. Used one buffer day to debug.
7 4 1 1 19 Bugs were fixed during testing and debugging time.


Technical Complexity

S/N Technical Description Remarks
1 PDF Generation of reports Getting things displayed nicely in a single page in the pdf.Special symbols and font embedding issues. Transformation of database records data to the display format required.
2 Attendance taking Transformation of database records data to the display format required
3 Lesson Feedback and makeup There are many client changes as to how lesson feedback and make ups are to be recorded. Resulting in frequent database schema changes.
4 Speeding up notifications (mass emails, sms.etc) To reduce the wait of teachers when publishing new announcements to guardians. The team has to learn about how to use a message queue. This is quite a challenge as more than 1 member have yet taken the Enterprise Integration module yet.


Risks

Risk Probability Impact Mitigation
Steep learning curve in exploring new frameworks, libraries and programming languages, such as SMS integration, E-mail sending, the Laravel framework and generation of PDF reports High High We will seek help from web resources (tutorials, videos) on how to implement it in our application. After many hours of effort and studying, we gradually became more familiar with the use of such libraries and frameworks.
Sudden changes in requirements, such as the communication methods available using the application, which arose after analysis of the results of their own trials High High We will seek advice from our supervisor and inform her about the new changes. We will proceed to implement the changes if it does not delay the completion of the project.
Juggling our academic workload in tandem with FYP when there are difficult tasks in a particular iteration Medium Low We will seek advice from seniors and read up on best practices on how we can utilize the framework chosen to make coding more efficient. Working long hours into the night was common as we tried not to exceed the planned iteration days.
There is a possibility that we may send out too many emails and get banned temporarily by Gmail, if we exceed their daily email sending limits (2000 for premium accounts, 100-500 for normal accounts) Medium Medium Make use of a reputable transactional e-mail service such as Mandrill, which allows up to 12,000 free emails per month. The team has also set up Mailgun, an alternative e-mail service such that in the unlikely event that we exceed Mandrill's free limits for a month, the team will also be able to switch to Mailgun without much hassle. It offers 10,000 free emails per month, which isn't too bad as well.



Quality of Product

Intermediate Deliverables

Stage Specification Relevant Links
Project Management Meeting Minutes Meeting Minutes
Schedule and Bug Metrics Metrics
Project Scope Scope / Functionalities
Analysis Architecture Diagrams Architecture Diagrams
ER Diagram ER Diagram
Use Case Use Case Diagram
Design Prototypes Prototypes
Testing User Acceptance Test & Sponsor Test Results Test Results


Reflection

Team Reflection

  • Exploring a new language and framework
  • how the use of technologies solve trivial business problem
  • Handling a project involving a business entity and managing it well
  • Balancing expectations.
  • Effective time Management juggling IS480 commitments with other projects etc.
  • Conflict Management and resolution strategies
  • Staying positive and always have the end in mind

Individual Reflection

Project Manager: Tan Zheng Ming, Kenneth

  • Effective communication between stakeholders involved in project
  • Manage conflict and expectations effectively
  • Planning of technical tasks is often complex and subjected to changes
  • Establish effective collaboration by allocating tasks / resources appropriately


Lead Designer: Chua Chong Thee

  • Adapting to changes during development
  • Designing with the end users in mind
  • Difficult to have a design that can satisfy everyone
  • Perseverance is key


Lead Developer: Lan Ziming

  • Many helpful people online willing to help you learn.
  • See beyond the surface, sometimes I wanted to use a service but it's either paid or comes with a very limiting free plan as stated on their website. However when I decide to email some of them telling them that I'm a student or doing it for a social cause, I'm surprised that some are actually willing to let me use their paid plans for free just because I'm a student or doing something that benefit others.
  • I have also learn to be more people orientated. As IT students, we often think about doing what's technically the most impressive, scalable, cleanest solution. However it is also important to consider people. The best solution is often not what best fit the problem theoretically . But one that also consider the people and conditions around you (team mates, clients, supervisor, context.etc).
  • Lastly, I learnt that taking care of one health is very important. So as to last longer.


System Analyst: Chen Weifang

  • Adapting and working with members with different working styles
  • Breaking down the algorithm into smallest parts possible and be meticulous
  • Measure the trade-off of each possible solutions vs obvious solution
  • Picking up a new language is not complex as long as one has the interest to learn


QA Analyst: Chan Qianru

  • Be open to feedbacks by users
  • Knowing what the end users want is important to solve any problem
  • Good designs often make people have a lasting impression of the application
  • Responsiveness and real-time will make systems more user friendly