HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2012T2 Succinq Final Wiki"

From IS480
Jump to navigation Jump to search
Line 554: Line 554:
 
!scope="row" align="center"|Results
 
!scope="row" align="center"|Results
 
|align="left"|
 
|align="left"|
 +
* [[IS480_Team_wiki:_2012T2_Succinq_Project_Documentation_Usability_Feedback#Heuristics | Summarized findings]]
 
* Feedback categorised and evaluated
 
* Feedback categorised and evaluated
 
* 17 issues for Android
 
* 17 issues for Android

Revision as of 14:34, 18 April 2013

Succinq team banner.png

Final-Term Wiki Page

Project Progress Summary

Immediate Deliverables





  • Download our Final presentation slides here!


Overview



Timeline succinq.png

Iteration Mobile Functionalities Backend/Admin Portal Functionalities Status
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.
Mission accomplished.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)
Mission accomplished.jpg
12 1. Create Travel form
2. Create Travel details page
3. Post Travel form inputs to database
4. Implement Google Analytics tracking
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
6. Statistical widgets and dashboard
Mission accomplished.jpg

Project Highlights

S/N Issue Description Mitigation Plan
1
2

Project Management

Project Status

Succinqoverview.jpg


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
Voice for a Cause 100% developed and deployed 1
Travel 100% developed and deployed 1
Magazine Subscription 100% developed and deployed 1
Google Analytics 100% developed and deployed 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
11 Flagging of Content NA 4 Mar 2013 IOS app store requires user contents to have flagging capabilities. Inserted task in remaining iterations that had the least task
12 Travel Function 18 Mar 2013 Iteration 10 - 26 Feb 2013 Still collecting user requirements about voices function. Push forward development of travel function


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.

Links:




Bug Metric Score
Bugstrackerupdated.jpg

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

Links:



Quality of Product

Final Deliverables

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

Deployment

  • 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, Ammado RESTFUL webservices
  • Web Links: View our Deployment Diagram Here!


Technical Complexity and Challenges

Task Description
YouTube API Integration What is this feature about?

The Global Forum feature allows users to upload videos of their views on a certain raging topic of concern. Users will upload their videos via the mobile application and then it would be stored at the Administrative Portal to await vetting by the Humaneity Administrator. Once approved, the video would be automatically uploaded to the YouTube channel, which ensures that the Humaneity database would not need to store the videos. In addition, the team is able to stream high quality MP4 videos for the Android section for the videos section, which is mentioned during the Mid-Term presentation.

How is it complex or challenging?
The Voices Global Forum was implemented to allow users to actively participate and discuss the latest humanitarian and social responsibility topics. In order to accommodate a wide pool of video responses, videos uploaded from the user's device would have to be uploaded to YouTube and removed from Humaneity's server in order to maximise system storage capacity. The Zend framework was chosen as it allowed for seamless communication with Google's APIs including YouTube, instead of using PHP curl calls to communicate with YouTube. The end result is a cleaner and more maintainable code base that has configurable access to YouTube and other Google APIs.

Google Analytics Integration What is this feature about?

Google Analytics allows the Humaneity team to track page views of the mobile application and as well as track user behaviour in terms of scrolling or navigation. The team can also analyse interesting information such as user demographics, the differences in usage between the iOS and the Android applications etc. With the help of Google Analytics, they could integrate all these information with the Administrative Portal as a dashboard for better viewing and analysis.

How is it complex or challenging?
The mobile version of Google Analytics was not a viable option to implement due to the use of the Titanium framework which is based on JavaScript. Instead we have used an open-source JavaScript module that allows Titanium applications to utilise the Web version of Google Analytics within iOS and Android applications. Configuration had to be made so that the mobile applications could simulate web pages. For example, in the Android app, a view (e.g. StoriesView) would represent a single page in a website, while on iOS, a window (StoriesWindow) would be tracked instead. Custom events were also configured to track in-app user behaviour. WIth the Zend framework, it was also possible to access the Google Analytics data collected from the admin portal and to display the desired metrics on the portal's dashboard.

Full server backup for Admin Portal What is this feature about?

In the event of a server crash and prevent losing all critical information, the team created a function for the Humaneity Administrator to be able to constantly save information of the entire Administrative portal. Be it the SQL database, source code, and all images, stories, videos etc zipped and downloaded locally as backup. It would be an easy migration to the new server with instructions provided on how to deploy the portal on a word document. Minimal configuration is required on the Humaneity Administrator's end to re-deploy the portal.

How is it complex or challenging?
This feature had to be carefully planned and implemented in order to ensure that the system is not affected by the snapshot and SQL extraction. The solution features a custom PHP script that also zips all of the admin portal's resources into a single zip file while maintaining the directory structure of the application.

Multiple Donation Options What is this feature about?

Due to a change in business requirements, the client hoped that our application would be able support Ammado (Another type of payment gateway) on top of PayPal for our donation functions.

How is it complex or challenging?
Unlike PayPal, it was more complicated in trying to integrate Ammado for both our mobile application and as well as our Administrative Portal. There is no mobile compatible plugin or module that we could utilise for Titanium and there is no instant payment notification mechanism for us to record the donation transaction in our Administrative Portal. As a result, the team has to custom-build a work around solution with Ammado RESTFul APIs in order to make it work. The team also used HTTP querying of the Ammado Payment status to simulate the instant payment notification, so that payment information could be updated in the Administrative Portal. As of now, for both PayPal and Ammado Payment Gateways, it is now standardised to be a single selection for the donation amounts for both Android and iOS. For PayPal in Android however, we still utilised the in-app PayPal module available for Titanium and for iOS, it remained as a browser based donation method due to Apple's guidelines. For Ammado, it is a browser based donation method for both platforms.

PayPal Integration (from Mid Term) 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 or challenging?
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 (from Mid Term) 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 or challenging?
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 (from Mid Term) 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 or challenging?
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 (from Mid Term) 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 or challenging?
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.

Testing

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

Heuristics Evaluation

Area Details
Method
  • Functional prototype given to heuristics experts to critique and give usability feedback
  • Evaluation is unstructured and unguided
  • Assistance given to evaluators by team members when required
Measures
  • Jakob Nielsen's 10 Heuristics
Participants
  • 3 SIS Evaluators
  • 3 External Evaluators (technical advisers with Humaneity)
Environment
  • SIS Building
  • External location (Red Dot Cafe)
Results
Observations
  • Inconsistency of navigation (swiping vs. scrolling)
  • Users do not know how to proceed once a view is displayed
  • Quotes feature is confusing

User Test 1

Area Details
Method
  • Laboratory usability testing
  • Test script given to participants
  • Participants to give subjective feedback after all tasks completed
  • Observations recorded by team member conducting the test
Measures
  • Ease of navigation and intuitiveness of buttons
  • Subjective feedback from users
  • Observation by team members
Participants
  • 19 student participants from SIS
Environment
  • SMU SIS Seminar Room
Results
Observations
  • Android
    (a) Swiping up and down for quotes does not seem intuitive to users
    (b) Users cant seem to find the comments functions due to its location
  • iOS
    (a) For quotes, users not sure where to look for camera function button
    (b) Users seemed to have clicked buttons but no response from system (Buttons too small)

User Test 2

Area Details
Method
  • Unchanged from UT 1
Measures
  • Unchanged from UT 1
Participants
  • 12 student participants from SIS
Environment
  • SMU SIS Seminar Room
Results
Observations
  • Android
    (a) Some users did not know how to return to the previous menu (Usage of back button)
    (b) Some users did not know that they could swipe from screen to screen rather clicking on tabs
  • iOS
    (a) Users never clicked the preview button to view the image they were uploading for quotes
    (b) Some users tried to scroll up and rather from side to side for the articles, quotes and give back

User Test 3

Area Details
Method
Measures
Participants
Environment
Results
Observations

UI Change Validation with Google Analytics

Area Details
Method
Measures
Participants
Environment
Results
Observations

Google Analytics

Future



Reflections