HeaderSIS.jpg

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

From IS480
Jump to navigation Jump to search
 
(18 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>
*View our midterm presentation slides [[:File: .pdf| <u>here!</u>]]
+
*View our midterm presentation slides [https://wiki.smu.edu.sg/is480/img_auth.php/3/3c/MidtermPresentation_v4.pdf <u>here!</u>]]
 
*Visit our deployed application [http://connectus.das.org.sg <u>here!</u>]<br>
 
*Visit our deployed application [http://connectus.das.org.sg <u>here!</u>]<br>
===<b>Login Credentials</b>===
+
<b>Note:</b>
<b><u>Teacher Account</u></b><br>
+
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.
Username:<br>
 
Password:<br>
 
<b><u>Guardian Account</u></b><br>
 
Username:<br>
 
Password:<br>
 
<b><u>Student Account</u></b><br>
 
Username:<br>
 
Password:<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>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 55: 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
*Change of POC
+
*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 212: 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 224: 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 243: Line 236:
 
Current Status: <b>Good standing</b>
 
Current Status: <b>Good standing</b>
  
{| class="wikitable floatleft" style="margin: auto;width:100%; text-align: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
Line 254: Line 247:
 
| 35
 
| 35
 
| 100%
 
| 100%
| None. We are on schedule
+
| None. We are on schedule.
 
|-
 
|-
 
| 2
 
| 2
Line 260: Line 253:
 
| 26
 
| 26
 
| 81%
 
| 81%
| <b>Reasons:</b> Learning curve in learning new frameworks and integrating libraries result in slower than expected progress in development.<br>
+
| <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.
 
Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.
 
|-
 
|-
Line 267: Line 260:
 
| 27
 
| 27
 
| 78%
 
| 78%
| <b>Reasons:</b> All developers are still learning the new language and framework. Coupled with other academic commitments, the difficulty in developing back-end logic in 'attendance taking for student' in php resulted in the delay in task completion<br>
+
| <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.
 
Extend iteration till the task is completed. Adjust the dates of the subsequent iteration to match the use of buffer days.
 
|-
 
|-
Line 280: Line 273:
 
| 15
 
| 15
 
| 93%
 
| 93%
| <b>Reasons:</b>A member left the group, reallocation of assigned work to other members.<br>  
+
| <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.
 
Used one buffer day to complete planned functionality in iteration. No need for adjustment of scope.
 
|-
 
|-
Line 287: Line 280:
 
| 16
 
| 16
 
| 88%
 
| 88%
| <b>Reasons:</b> Jeanne left DAS, handover of management to Sree. There were also new suggestion of new functionality by the directors which led to some major change in the database structure.<br>
+
| <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.
 
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.
 
|-
 
|-
Line 395: 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 401: 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, libraries and programming languages , such as SMS, email, Laravel, pdf report generations
+
| 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 web resources (tutorials, videos) on how to implement 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
 
| High
| 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.
+
| 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 other academic workload when the tasks in a particular workload is heavy.
+
| Juggling our academic workload in tandem with FYP when there are difficult tasks in a particular iteration
 
| Medium
 
| Medium
 
| Low
 
| Low
| 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.
+
| 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 too many emails and got banned temporary by Gmail if we exceed their daily email sending limits (2000 for premium accounts, 100-500 for normal accounts)
+
| 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
 
| Medium
 
| Medium
| Make use of a reputable transactional email service such as Mandrill, which allows up to 12,000 free email sends per month. The team have also set up Mailgun such that in the unlikely event we exceed Mandrill free limits for a month, the team will also be able to switch to Mailgun pretty fast which has 10,000 free email sends per month.
+
| 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 491: Line 484:
  
 
<br>
 
<br>
<strong>Lead Designer: Chua Chongthee</strong>
+
<strong>Lead Designer: Chua Chong Thee</strong>
*Good design principles
+
*Adapting to changes during development
*Intuitive design make people more inclined to use the system
+
*Designing with the end users in mind
*Difficult to have a design that is pleasant to everyone
+
*Difficult to have a design that can satisfy everyone
*Habits/ traits of people can have inspiration to design (e.g Right handed)
+
*Perseverance is key
  
 
<br>
 
<br>
 
<strong>Lead Developer: Lan Ziming</strong>
 
<strong>Lead Developer: Lan Ziming</strong>
* Ask and you shall receive, there are many helpful people online willing to help you learn. All you need to do is to make the effort to ask and provide details.
+
* Many helpful people online willing to help you learn.
* See beyond the surface, sometimes I wanted to use a library/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 by the fact that many are actually willing to let me use their services for free, even for commercial purposes just because I'm a student or doing something that benefit others.
+
* 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.etc).
+
* 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 learn that taking care of one health is very important, so as to last longer.
+
* Lastly, I learnt that taking care of one health is very important. So as to last longer.
 
<br>
 
<br>
 
<strong>System Analyst: Chen Weifang</strong>
 
<strong>System Analyst: Chen Weifang</strong>
*Being a logical and very meticulous pays off when developing coding logic (Hahaha...)
+
*Adapting and working with members with different working styles
*Comments in codes is very important for future references (hahaha...)
+
*Breaking down the algorithm into smallest parts possible and be meticulous
*System response is very important to end users and has some co-relation with to good logic (hahaha...)
+
*Measure the trade-off of each possible solutions vs obvious solution
*High level planning pays of before any form of development (hahaha...)
+
*Picking up a new language is not complex as long as one has the interest to learn
  
 
<br>
 
<br>

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