IS480 Team wiki: 2012T2 Succinq Midterm Wiki

From IS480
Jump to navigation Jump to search

Succinq team banner.png

Project Progress Summary

Immediate Deliverables

  • Download the iOS Version through your mobile device: m.diawi.com

  • Download the Android Version from Google Play through your mobile device: bit.ly/humaneity_play

  • Download the Android Preview Version (PayPal donations in sandbox environment) through your mobile device: bit.ly/humaneity_android

  • Download our Mid Term presentation slides here!


On 8/10/2012, we started with iteration 1 and till date we have completed 9 iterations.

Timeline succinq.png

Iteration Mobile Functionalities Backend Functionalities Status
1 1. Integrating YouTube Playback with Titanium for Videos
2. Splash Screen Design
1. Setting up database and design user interface for backend portal
2. Create Articles Function
3. JSON implementation of REST service for articles
2 1. Displaying article feed
2. Integrating JSON article REST service
3. Request for selected article
1. Uploading and retrieving images
2. Delete and Update Articles Function in database
3 1. Facebook Login Function
2. Facebook Sharing Function
1. Create users table in database
2. Save users' facebook details in database
4 Exam Period Exam Period
5 1. Design of commenting interface for articles
2. Post comments to database
3. Calling and display comments via web service
1. Create comments table in database
2. Save posted comments in database
3. Delete comments from database
6 1. Design of Quotes Interface
2. Take picture function via phone camera API
3. Submit Quotes to database(image and text)
4. Retrieve quotes via web service
5. Format quotes metadata for facebook sharing (image and text)
6. Commenting of quotes
1. Create quotes table in database
2. Manage quotes and quotes comments function (CRUD)
3. Integrating quotes function with application
4. JSON quotes feed
7 1. Heuristics Changes and Functional Modifications
2. Design interface for displaying of projects (Gives function)
3. Display project via web service
4. Post volunteer's details to database
1. Heuristics Changes and Functional Modifications
2. Create gives table in database.
3. Manage projects function (CRUD)
4. JSON project feed
5. Save volunteer's details to database
8 1. UT changes
2. Create Payment Mechanism (Paypal)
2. UT changes
2. Backend Portal functional improvements
9 1. Software Testing fixes 1. Fix Caching images issue
2. IPN Listener Integration
3. Save donations information in database
4. Create user demographics pie chart widget
10 1. Refine app from User Test 2
2. Design Voice for a Cause(petition) UI
3. Develop Voice for a Cause function
1. Refine app from User Test 2
2. Create petitions table in database
3. Manage Petitions Functions (CRUD)
4. Create JSON voting petition feed to app.
Coming soon.jpg
11 1. Create link to Magazine Subscription form
2. Create Magazine Subscription form
3. Create PayPal module for subscription transaction
1. Create magazine subscription table in database
2. Manage magazine subscription details (CRUD)
Coming soon.jpg
12 1. Create Travel form
2. Create Travel details page
3. Post Travel form inputs to database
1. Create Travel details table in database 2
2. Create Travel form inputs table in database (CRUD)
3. Manage Travel details (CRUD)
4. Create JSON web service to display feed
5. Save Travel form inputs
Coming soon.jpg

We have 3 more iterations worth of development till we reach our poster submission day. We are currently on schedule and we are confident that the project will progress as planned.

Project Highlights

S/N Issue Description Mitigation Plan
1 The rewards scheme functionality has been changed to Voice for a Cause functionality, where the user is able to sign in a petition for a cause put up by Humaneity. The user can choose to support or oppose the cause through a message or video. The team feels that the difficulty level for both functions are similar, and thus has replaced the rewards scheme functionality which was to be completed in this iteration (10) to the Voice for a Cause functionality in the schedule.
2 The volunteer and the donate function has been combined into one feature called Gives Back. The volunteer function and the donate function was split between 2 iterations, the volunteer function in Iteration 7 and the donate function in Iteration 8 respectively, and the Gives Back function was completed on schedule.

Project Management

Project Status


Feature Status Confidence Level (0 - 1) Comments
Articles 100% developed and deployed 1
Videos 100% developed and deployed 1
Gives 100% developed and deployed 1
Quotes 90% developed and deployed 1 There are still improvements to be made towards userbility and navigation after collecting feedback from User Test 2.
Voice for a Cause Not Started 0.8 This additional function replaces the earlier planned gamification function(Rewards Scheme) as requested by the client in the latest meeting.
Travel Not Started 1
Magazine Subscription Not Started 1

Project Schedule (Planned VS. Actual)

For a more comprehensive understanding of our project schedule, please download Project Schedule.

Iteration Tasks Planned Actual Comments
7 Develop Gives back function 7 Jan 2013 14 Jan 2013 Rescheduled Gives back function in place of heuristic evaluation modifications
8 Integrate PayPal module 14 Jan 2013 31 Jan 2013 Moved integration of PayPal module from Iteration 7 to Iteration 8 because preparations for User Test 1 took longer than expected
8 Backend Improvements to articles function and data analytics NA 28 Jan 2013 Since the Paypal module function needed more testing and cannot integrate with the backend yet, the team inserted improvement tasks that was recommended by the client (refer to additional feature metric).
9 IPN Listener integration with backend function 28 Jan 2013 7 Feb 2013 This task had to be rescheduled because software testing for the PayPal module did not meet the expected result
10 Voices for a cause 26 Feb 2013 NA There is a change in user requirements and Voices for a cause has replaced the Rewards Scheme functionality. The function has been moved (reason for move is due to the client's current business situation) from Iteration 9 to Iteration 10

The rest of the tasks progressed smoothly as per planned.

Project Metrics

Schedule Metric Score
Schedulemetric succinq.jpg

The overall team’s schedule metric score over the past 9 iterations has been quite consistent maintaining within the healthy range of between 0.9 and 1.1. We have so far managed to meet most of individual tasks deadlines as well as allocating tasks for testing and functional improvements.

Schedule Highlights

Iteration Description/Mitigation
5 We had a few tasks that were delayed such as system integration of articles comments in iteration 5. However, the delay of tasks did not affect the schedule substantially as each iteration, there is a 2 days of buffer time in the event where a delay of tasks are present. With the help of the buffer days we were still able to complete the scheduled tasks within that iteration.
7 & 9 The giving back project feature was delayed in Iteration 7 due to the preparation of our first User test 1 also conducted in Iteration 7. Similarly, it did not affect the schedule much as we had 2 days of buffer time which still enabled us to complete our tasks on schedule. As such, the team learnt from this experience and so in Iteration 9, and began preparing for User test 2 in advance as well as allocating one specific resource to handle all User test 2 administrative work. As compared to Iteration 7 where all of the resources were activated, it was a much more efficient method. With the use of this mitigation strategy, we were able to improve the process of managing the user test as well as assigning the right amount of resources to avoid overloading on each member. As a result, the iterative score in Iteration 9 improved significantly as compared to Iteration 7.


Bug Metric Score

Bug Highlights

Iteration Description/Mitigation
6 There is a substantial increase in the number of bugs in iteration 6 as we conducted our first Heuristics evaluation. Bug fixing tasks were scheduled in Iteration 7 to resolve all bugs. All 6 bugs found in this iteration were resolved in Iteration 7.
7 The number of bugs caught remained the same in Iteration 7 as we conducted our first user test 1. Bug fixing tasks were scheduled in Iteration 8 to resolve all bugs. All bugs found in this iteration were resolved in Iteration 8.
8 In Iteration 8, 8 bugs were caught as we conducted more rigorous software testing with more functionalities completed. Bug fixing tasks were scheduled in Iteration 9 to resolve all bugs. All bugs found in this iteration were resolved in Iteration 9.
9 In Iteration 9, the number of bugs caught dropped significantly. This could be due to the extensive testing that we carried out for the past 3 iterations. We conducted a second user test 2 as well as another software test in preparation for deployment to the app store. Bug fixing tasks were scheduled in Iteration 10 (this iteration) to resolve all bugs. To date, there is 1 outstanding bug in iOS, which involves updating the number of comments in the icon after commenting on a quote, that is yet to be resolved


Top 3 Project Risks

S/N Type of Risk Risk Description Likelihood Impact Mitigation Strategy
1 Technology and Learning The steep learning curve of new development modules may result in slower deliverable to the project and the team may not meet the expected scheduled deadline. Maybe Medium The team will manage this issue by doing extensive research from the internet/books or get help from our expert advisors (Erwan & Vincent). The PM will also manage the schedule and plan for a longer duration for newer functions.
2 Technology and Deployment Not being able to officially deliver/publish the application on time due to requirement mismatch or other missing elements on the app store Likely High Attempt to deploy the application before mid terms to understand the requirements that the team needs to adhere from the app store. This will help the team understand the publishing process for subsequent launch versions.
3 Post Development Support Low or no post project maintenance may result in low product quality of the application in the long run. Likely High Application developed in a layered and modular manner. Use of more familiar technologies wherever possible. Meet client regularly to assess relevance and functionalities. Provide an administration portal to manage the frontend application as seamless and flexible as possible.

Technical Complexity

Task Description
PayPal Integration What is this feature about?

This feature is for users to donate their desired amount to fund the projects they chose. The team needed to manage the donation process across the backend, administrative portal, iOS and Android systems. In this case, Paypal's IPN(Instant Payment Notification) is required for server-to-server communication of PayPal donation transactions.

How is it complex?
The team then created a server-side IPN solution for our backend and administrative portal. It was developed in PHP and hosted on Humaneity's server. It was a multi-stage process that firstly, reads the PayPal payment data posted to the server. It then posts the data to PayPal for validation and finally processing and storing validated IPN data in the backend. The stored donation data can then be used to generate donation statistics on the administrative portal.

In addition, there are differences in trying to integrate PayPal with the Android and iOS platforms. For Android, donations can be made in-app, via the PayPal Titanium module. iOS however, donations must be made via an external call to Safari, i.e. cannot be made in-app due to Appstore's app guidlines.

High Quality YouTube Video Playback on Android What is this feature about?

Previously due to the inability to embed YouTube HTML5 player in Titanium for Android, we could only use RTSP(Real Time Streaming protocol) to stream 3gp (video file format) from YouTube API. As such, the quality of the video could only be 240p 3gp format, which was very pixelated. On top of that, there is a blocking of RTSP on some networks, for eg. WLAN-SMU.

How is it complex?
Our developer came out a solution which was to stream MP4 from a generated URI. We would first get a temporary download of get_video_info text file of the chosen video. We would then send send the text data to custom node.js webservice to generate the URI of the HQ mp4. Finally, we would use Titanium's built in video player to stream the video in-app. As such, both problems in terms of quality and the blocking of RTSP issue were solved.

Google Charts API Integration What is this feature about?

By integrating the Google Charts API with our administrative portal, we are able to generate user statistics in graphical representation for viewing.

How is it complex?
We initially had difficulty integrating data from our database with Google Charts as there is no clear solution to read data dynamically. As such, we custom coded a solution required for dynamic statistical reporting. It involved an Asynchronous querying of data using AJAX, reformat the queried data into a JSON so as to be compatible with the Google Charts API.

Quotes Submission What is this feature about?

Submission of quotes onto the mobile application either by using an existing picture from the phone's gallery or taking a new picture with the phone's camera. On top of that, user will also be able to put some text over the image before uploading on to the mobile application's server. As with all pictures, they come in portrait or landscape orientation, the complexity here is to retrieve the orientation of the picture so that we can correctly display the picture in its aspect ratio.

How is it complex?
Capturing of the aspect ratio of the picture was complex, Titanium handles images by using an image blob and we were not able to retrieve the blob's attributes and properties. With much effort, we discovered the work around to be - assign the blob to display on an image view, the image view will assume the height and width attributes of the blob. Only having done this can we retrieve the attributes of the image so that we can display the images in their original orientation and accurate aspect ratio.

Quality of Product

Intermediate Deliverables

Stage Specification Modules
Project Management Methodology
Meeting Minutes
Requirements User Interface Mockups
User Interface Storyboard
Analysis Use Case Diagram
Design ER Diagram
Architecture Diagram
Deployment Diagram
Testing Software Testing
User Testing


  • Staging & Development Environment: The application is compatible for Android Versions from 2.2 to 4.2.1. iOS minimum version compatibility is 4.3 to 6.1.2
  • Database: It is currently in MySQL which is hosted on Humaneity's Server.
  • Web Services: Facebook, YouTube, PayPal RESTFUL webservices
  • Web Links: View our Deployment Diagram Here!


Heuristics Software Testing and Results (Mobile and Administration Portal) User Test

Reflections and Learning Outcomes

Team Reflection

Team reflection succinq.jpg

Individual Reflections

Learning outcome succinq.jpg