HeaderSIS.jpg

Mid Term Wiki

From IS480
Jump to navigation Jump to search
VerendusHome3.png
Home
 
VerendusTeamIcon.png
Our Team
 
VerendusOverview.png
Project Overview
 
VerendusMgmt.png
Project Management
 
VerendusDoc.png
Project Documentation
 
VerendusReflectionIcon.png
LOMS & Reflections
Use Case Use Case Description   Giving Process   Storyboard   Diagrams   Minutes Repository   Presentations   UAT


Project Progress Summary

View our midterm presentation slides here!

Progress Overview
Since 8/5/2012, our team has gone through 7 iterations till date with the assigned functions being completed timely every iteration. During these few months, we have completed the following tasks:

  • Generation of QR codes for B1G1 business members
  • Delivered a working B1G1 Connect Application with core functionalities completed
  • Integrated B1G1 Connect Application with B1G1 database
  • Conducted User Testing #1 with B1G1

Project Highlights

Even though our team has tried our best to follow the planned schedule, there are still unforeseen circumstances which have caused us to make certain changes to our schedule. These are the unexpected events which occurred:

1 Changes in Payment Process
1. Initially when we have discussed with the client about the payment progress, it was agreed that our application will just redirect the business member to Paypal where they can give to the projects according to the amount which they would prefer. However, after the acceptance presentation, the client has expressed concerns that to make the supports more valuable to the business members, it would be better if we can send the amount of givings calculated by the B1G1 Connect Application to Paypal directly. Thus, we have to work on the integration with Paypal for the Payment Process. However, before we start to embark on the integration with Paypal, the client notified us that their existing payment process uses Drupal and they would like us to use Drupal instead of integrating with paypal since their giving cart on Drupal has cleared the security settings. Thus, our team has to start learning Drupal during iteration 5 in order to integrate it with our B1G1 Connect Application. As we are not familiar with Drupal, our team encountered difficulties during the integration process in iteration 6 and this have caused us to run slightly late in schedule.
2 Changes to schedule after acceptance presentation

Rescheduling of tasks Before our team embarked on the integration with B1G1 database, we had a look through the B1G1's database and realized that their database is much more complicated than what we have expected and there were too many tables in their database which may lead to complications during the integration phase. Since integration is an important process, we decided to reschedule some tasks which we have to complete during the integration phase so that we can have more time to understand their database structure, focus on the integration and ensure that we can integrate successfully with the client database at the end of iteration 5.

Increasing the duration for each iteration

From the feedback given by Prof Gan during the acceptance presentation, we have decided to include client testing in every iteration to allow the client to have time to test out on the functionalities which we have completed in that iteration. We have also designed an iteration sign-off which we would send to our client to inform them about the functionalities which are completed in the current iteration and update them on what our team intends to complete in the next iteration. Due to the inclusion of client testing, we would have to increase the duration required for every iteration by a week as the client would need substantial time to test the B1G1 Connect Application.
3 Changes to project requirements

Functions changes.jpg Note: Changes are highlighted in Red

Project Management

Iteraetion One.jpg
VerendusIteration2.jpg
Iteration 3.jpg
Iteration 4.jpg
Iteration 5.jpg
Iteration 6.jpg
Iteration 7.jpg
Iteration 8.jpg
Iteration 9.jpg
Iteration 10.jpg

Project Status

Task/function/features, etc Status Confidence Level
(0-1)
Comment
QR Code Generation Fully deployed and tested 100% 1 Madeline Ong
Individual Login/Logout of B1G1 Connect Fully deployed and tested 100% 1 Tan Chang Kiat
Newsfeed (Comments, like and share functions) Fully deployed and tested 100% 1 Tan Chang Kiat and Chin Pei Wen
Location (Individual User Check-in, displaying of business profile) Fully deployed and tested 100% 1 Tan Chang Kiat
Business Login/Logout of B1G1 Connect Fully deployed and tested 100% 1 Xu Peiwen
Project Management for Business Fully deployed and tested 100% 1 Chin Pei Wen and Madeline Ong
Account Management Fully deployed and tested 100% 1 Tan Chang Kiat and Chin Pei Wen
Impact for Individual 90% completed. Function is fully tested and deployed but sharing details not confirmed. 0.9 Tan Chang Kiat
Project Reminder for Business 80% completed, further testing and UI changes required. 0.8 Chin Pei Wen and Madeline Ong Hui Ying
Support Results Fully deployed and tested 100% 1 Madeline Ong
Calculation of Giving Fully deployed and tested 100% 1 Siti Mardiana Tumadi and Madeline Ong
Instruction Functionality Fully deployed and tested 100% 1 Siti Mardiana Tumadi and Tan Chang Kiat
Integration with Drupal for Payment Process Fully deployed and tested 100% 1 Xu Peiwen and Tan Chang Kiat
Quick Tour under Tab 30% completed. Function to be fully completed after all core functionalities has been deployed and tested. 0.3 Tan Chang Kiat
Giving Summary for Businesses 90% completed. Function has been fully deployed and tested. Subjected to UI changes. 0.9 Xu Peiwen and Siti Mardiana Tumadi



Project Schedule (Planned vs Actual)

As mentioned earlier in the unexpected changes, we have made changes to our schedule after the project acceptance presentation. Even though most of iterations are completed timely, there are some iterations with slight delay.


Iteration Task Planned Start Planned End Task Actual Start Actual End Comment(s)
1 Gathering of Project Requirements 08/05/2012 10/06/2012 Gathering of Project Requirements 08/05/2012 17/06/2012 Client was away on overseas trip, took longer time to gather client requirement.
Brainstorming of Ideas 08/05/2012 08/06/2012 Brainstorming of Ideas 08/05/2012 14/06/2012
Discussion and Preparation of Proposal 11/06/2012 18/06/2012 Discussion and Preparation of Proposal 11/06/2012 19/06/2012
2 Design Phase (Use Cases, Process Flow Diagram, Class Diagram, Sequence Diagram) 27/06/2012 07/10/2012 Design Phase (Use Cases, Process Flow Diagram, Class Diagram, Sequence Diagram) 27/06/2012 07/10/2012
3 Learning of PHP5 12/07/2012 16/07/2012 Learning of PHP5 12/07/2012 16/07/2012 Self-Learning + Group Learning
User Account Management 15/07/2012 20/07/2012 User Account Management 15/07/2012 20/07/2012
Login/Logout Function 12/07/2012 13/07/2012 Login/Logout Function 12/07/2012 12/07/2012
Newsfeed 12/07/2012 20/07/2012 Newsfeed 12/07/2012 15/07/2012
Location Check-in 15/07/2012 20/07/2012 Started task one iteration earlier as newsfeed finished earlier than expectation
QR Code Generation 15/07/2012 19/07/2012 QR Code Generation 15/07/2012 15/07/2012
Business Profile Page 15/07/2012 15/07/2012 Business Profile Page 15/07/2012 15/07/2012
Sharing and Liking of Feeds 17/07/2012 20/07/2012 Sharing and Liking of Feeds 17/07/2012 20/07/2012
Impact Page 15/07/2012 16/07/2012 Impact Page 15/07/2012 16/07/2012
4 Selection of Project for Business Member 24/07/2012 01/08/2012 Selection of Project for Business Member 24/07/2012 01/08/2012
Support Project Function 24/07/2012 01/08/2012 Support Project Function 24/07/2012 01/08/2012
Display and Calculation of Giving 24/07/2012 01/08/2012 Display and Calculation of Giving 24/07/2012 01/08/2012
Changes to UI 24/07/2012 08/10/2012 Client gave designs to make the UI look more friendly
5 Understanding of B1G1 Database 15/08/2012 20/08/2012 Understanding of B1G1 Database 15/08/2012 20/08/2012 Days set aside to understand client database before integration due to the complex database structure
Integration with B1G1 database 24/08/2012 27/08/2012 Integration with B1G1 database 24/08/2012 27/08/2012
6 Integration with Drupal for giving 03/09/10 12/09/2012 Integration with Drupal for giving 03/09/2012 18/09/2012 Client changed requirements - Instead of integration with Paypal, they prefer integration with Drupal. Task took longer than expected for completion due to time spent to learn drupal and unexpected technical difficulties faced
Instruction Function 07/09/2012 09/09/2012 Client Request to have instruction function to be implemented before Quick Tour
Quick Tour for Business and Individual 15/09/2012 16/09/2012 Task pushed to iteration 7 as client prefer to have quick tour after completion of core functionalities and would like to have instruction page first
Giving Summary 15/09/2012 16/09/2012 Task pushed to iteration 7 due to delay in completion of integration with drupal
Project Expiration Date 15/09/2012 19/09/2012 Task pushed forward from iteration 7 to iteration 6 since two tasks are being pushed back
7 Giving Summary 24/09/2012 25/09/2012 Giving Summary 25/09/2012
Notification to User for Project Expiration 24/09/2012 26/09/2012 Notification to User for Project Expiration 22/09/2012
Quick Tour 24/09/2012 06/10/2012 Quick Tour 24/09/2012


Project Metrics

Schedule ratio.jpg

Apart from iteration 2 and iteration 6, our team has been progressing on schedule and are able to complete the planned tasked allocated for every iteration. Iteration 2 took a longer period of time for completion because of some unforeseen circumstances (health issues and army) where 2 of our members are unable to come for meetings and the tasks allocated has to be split amongst the remaining 3 members instead of the 5 members. There was a delay in iteration 6 due to the change in requirements from the client's side with regards to the payment processing. The change to deal with integration with Drupal instead of Paypal caused us to take a longer period of time to understand how their giving cart works and how we can integrate their giving cart into our application. Hence, we faced more difficulties in the integration process which resulted in the change in schedule as there was reallocation of tasks assigned.

Bug Metrics

Recording of bugs, duration to solve, what causes the bug, solution to the bug and bug metrics in the entire developmental phase.
For the compliaiton of bugs in the entire development, please refer to this file (File:Verendus Bug Metrics.xlsx).


Verendus bug analysis.png


The development of the new system begins in week 3, where we learnt how to code in PHP beginning with peer learning through pair programming with our lead developer, Chang Kiat. As such, during this iteration, our team faced lesser bugs in comparison to Iteration 4 where majority of the functions were coded.

In Iteration 4, as we faced with a greater challenge due to unforeseen circumstances where two of our team member were unavailable due to illness and recall for military courses; which resulted in lack of resources in coding. In addition, in this iteration, we had plan to complete more core functions than in Iteration 3. Thus, given the two challenges, our team encountered the highest bug iteration points in entire development of the new system.

Following our Project Acceptance, we embarked with our integration plans with the B1G1 Test server. The B1G1 Test Server is a mirror imaged of the B1G1 Live server, with multiple systems co-exsisting within the same server. We spent a huge amount of time analyzing their data base structure and in order to minimise the integration risk faced. Our efforts were eventually paid off, with the successful integration with the Test Server. As a result, we faced lesser bugs as compare with Iteration 4, since we are not coding new functions but resolving integration issues.

The main bug that we encountered in Iteration 6 as arise from the changed of project requirement by the Client in the payment process. The initial plan of developing Paypal giving cart was aborted halfway through the process. Due to security issues, which is the main concern, we were told to integrate with the existing Drupal Giving Cart of their existing system. As none of our existing member had prior knowledge in Drupal and unfamiliarity of the existing giving cart, we spent days in researching and debugging the integration issues with the existing giving cart.

Looking forward, where we will be conducting more user testing and implementing additional functionalities till the end of the development of the system, we foresee higher rate of bugs to be detected in the next iteration.

Project Risks

Risk Probability Impact Mitigation
Sponsor requirements may change during the course of project resulting in the change of functionalities High High Have iteration sign-off documents for the sponsor for confirmation of functionalities and send storyboards and process description via email; assess the proposed changes and let the sponsor know if our team have sufficient time to include in our scope.
Liaison issues with B1G1’s IT representative Medium High Assign extra time to communicate with the IT personnel so that both team and sponsor have sufficient time to find a common consensus. Our team has to be honest and realistic when we seek for guidance.
Quality issues due to the synchronization with the B1G1 database Medium High Assess and understand the database scheme as a group. If this issue persists, the team will consult the sponsor for further clarification.
Not getting enough relevant user feedback for business functionalities due to time constraints Medium Medium Liaison with the sponsor to get their business members to test our application

Architecture

VerendusArchitecture.png

Technical Complexity

Integration with our client’s existing Drupal system and database

We have faced a lot of difficulties while integrating our web application with their existing Drupal system and database.

We took about two days to analyse and understand the structure of our client’s database as they have a huge amount of tables. The information has been split up and placed in different tables of the database. For example, the data of businesses which we required has been separated and placed in 4 different tables. Even though we have learnt SQL during our course of study in school, we still faced problems retrieving all the data we need during the early stage of integration. Likewise for inserting of data, we have to split the data and insert them into different tables. Even though we have been developing on their test server, we have to take precautions because the test server is still valuable to them.

These are the major problems we have faced so far, excluding retrieving/inserting data from/into their database:

  1. The first problem we encounter is to pass information from our web application to their Drupal system. Information consists of the amount of giving, the projects which a business want to support, recommended amount for each supported projects, etc.

    Solution: Store the information in the database. The Drupal system can then get all these information from the database, instead of passing through URL parameters or other methods.

  2. The second problem we faced is to maintain the user’s login credentials on both our web application as well as the existing Drupal system of our client. Once the user is being redirected to the Drupal system, he/she will be logged out from our web application.

    Solution: Do an AJAX call and log the user back to our web application before he/she is redirected to the Drupal system.


Even though we have solved all these integration problems so far, we foresee that we will still face more integration problems when we implement more features in the future.

Designing a user interface which is suitable for computers and mobile devices

One of our client’s requirements is to enable our web application to be viewed on computers and mobile devices. After our research, we find that we can apply responsive CSS to our web application in order to cater to the different resolutions of different computers and mobile devices. While learning and applying responsive CSS is not difficult, we have faced a lot of problems when we tried to cater our user interface to all devices. For example, a popup box may look fine on a computer. However, it will be out of position when viewed with a mobile device. In order to solve the UI issues, we have set aside a reasonable amount of time to test the UI on different computers and mobile devices like iPhone, Samsung Galaxy S3, iPad, Blackberry and etc.

Quality of Product

Value-add to the Giving process of Business Members

Our web application can recommend the giving amount to business members based on the number of supports (popularity) for each project. This can help the business members to save time as they will not have to spend time and decide the amount of money to give for each project.

Model-View-Controller (MVC)

Our web application is built on the Model-View-Controller (MVC) model. By using this model, all the files have distinct purposes and they are group into folders based on their type (e.g. Data Access Object (DAO) files can be found in the 'dao' folder, controller files can be found in the 'controller' folder, etc). Therefore, it is convenient for anyone, especially the developers of our client, to expand the functionalities of the web application.

Intermediate Deliverable

Stage Specification Modules
Project Management Minutes Minutes Repository
Metrics Metric Explanation
Requirements Storyboards Storyboard
Analysis Use Case Use Case Diagram
Business Process Diagram The Giving Process
Design Class Diagram Class Diagram Image
Sequence Diagram List of Sequence Diagrams
Testing User Testing User Testing Details


Testing

Unit Testing

Objective
Testing of individual unit, such as the method to calculate the contributions of business members based on the number of supports for each project and not the entire contribution function. All dependencies of the test are mocked up.
Period of Testing: Iteration 3 - 9
Developers responsible for Unit Testing.

Functional Testing

Objective
Testing of individual function of the web application, such as the entire contribution function, with possible interactions with database, web services and existing B1G1 systems in the test server.
Period of Testing: Iteration 3 - 9
Developers responsible for Functional Testing.

Test Plan

  • Business Member
  1. File:1 - Login.docx
  2. File:2 - Projects.docx
  3. File:3 - Newsfeed.docx
  4. File:4 - Results.docx
  5. File:5 - Summary.docx
  6. File:6 - Logout.docx
  • Individual User
  1. File:1 - Login Function.docx
  2. File:2 - Account Management.docx
  3. File:3 - Check In.docx
  4. File:4 - Newsfeed indi.docx
  5. File:5 - Support.docx
  6. File:6 - Impact.docx
  7. File:8 - Tour.docx
  8. File:7 - Logout indi.docx

Integration Testing

Objective
After migrating from the local server in the initial development to the client's designated test server, it is important that Integration Testing was conducted to prevent duplication/conflict of data and other technical complexity issues arising from the integration. The testing involves interaction with existing systems, databases and web services.
Period of Testing: 28-30 Aug 2012
Developers are responsible for Integration Testing.

Test Plan

  • Business Member
  1. File:1 - Login.docx
  2. File:2 - Projects.docx
  3. File:3 - Newsfeed.docx
  4. File:4 - Results.docx
  5. File:5 - Summary.docx
  6. File:6 - Logout.docx
  • Individual User
  1. File:1 - Login Function.docx
  2. File:2 - Account Management.docx
  3. File:3 - Check In.docx
  4. File:4 - Newsfeed indi.docx
  5. File:5 - Support.docx
  6. File:6 - Impact.docx
  7. File:8 - Tour.docx
  8. File:7 - Logout indi.docx

User Testing 1

Objective
The aim of this testing is to allow us to seek comments and feedback from our client and her team who will be the future web administrators of the B1G1 Connect. The comments and feedback from these people are critical in providing us a valuable suggestion.

Participants:

  • B1G1
    • Masami Sato- Client & B1G1 Co-Founder
    • Paul Petruccelli - B1G1 Vice-President

Devices used for testing:

  • iPhone 4S
  • iPad 2nd Gen
  • Samsung Galaxy S3
  • Samsung Galaxy Tab
  • HTC Andriod Phone

Browsers used:

  • Google Chrome
  • Mozilla Firefox
  • Safari

Test Plans

Test Results

"Overall Test Result"
Overall User Test Results

"Overall Test Result"
Business Test Plan Results

"Overall Test Result"
Individual Test Plan Results

"Overall Test Result"
Individual Facebook & QR code Test Plan Results

"Overall Test Result"
Evaluation of Overall User Test Results

Comments from our B1G1 Clients

  • 1. Paul

What do you like about our application?
"I like that a Business Member can use the QR code to send his employees, customers, suppliers, etc. to make contributions he can readily track, as I think the Members will find many creative uses for that functionality. I know the app can do more stuff than that. But I'm not a huge believer in building in elements that are "cool" or that one or more of us might like. I'm a big believer in building in elements (and only those elements) that the key user (in this case, the B1G1 Business Member) would say solve a problem for him, or allow him to do something in a way that makes the B1G1 membership more valuable to him."
What do you dislike about our application?
"Newsfeed. This may be a generational thing, so you should try to get some feedback on whether it's viewed differently by older vs. younger users. But to someone like me (i.e., older), who is on FB, Twitter, etc. but doesn't use them extensively, the Newsfeed may be viewed as less valuable/useful than other aspects of the app."
How do you think we can improve on our application?
"Strip out each thing that makes it more complicated, unless each such specific thing makes the Business Member's B1G1 membership more valuable to him. I'm a huge believer in focus and simplicity. I used to work with a guy whose rule when writing presentation decks was "each word has to earn its way onto the page." I feel the same way about elements of apps, particularly smartphone apps that are by definition working with severely restricted space. Sorry -- just my view."

  • 2. Masami

What do you dislike about our application?
"The flow can be improved dramatically. The current flow is not very encouraging for the users. The UI layout can also be improved to make the information look better in the small screen too on some of the pages. But overall, it is good."
How do you think we can improve on our application?
"Looking at the overall flow, testing it with people who are not familiar with the concept and making the improvements until people can navigate easily without instructions. The color scheme can be more lively (rather than the brown color...) the next UAT can monitor the user experience part more. This UAT was very instructive so it was good for testing the system aspect but not sufficient for testing the intuitive user flow."


Things to note from User Testing 1 Test Results

  • From the evaluation of the Test Results, we understand that we would need to take note of the following:
    • To ensure that "All Projects" link at the sub-navigation bar would be displayed.
    • To ensure that "Instructions" icon and "Login" button appears more visible for the B1G1 users.


Photographs during our User Testing

"Paul from B1G1 Team"
Paul testing the web application with a Galaxy Tab

"Masami from B1G1 Team"
Masami testing the web application with a iPad

"iPad"
A preview of our web application

"Test Plan"
"Pass"! All the way Verendus!

"Feedbacks from Masami"
Masami providing feedbacks to Peiwen.

"Paul"
Paul deeply engaged with the new system

User Testing 2

Objective
The aim of this testing is allow seek feedbacks from individual users, the tester's for this user testing will be a group of 50 students from SMU conducted over 3 days.

Date: 9-11 Oct 2012
Venue: SMU Koufu
Participants: 50 SMU Students

User Testing 3

Objective
The aim of this testing is allow external users, mainly the individual users to test the system and provide comments as a individual user rather than comments from the team.

Date: 23-25 Oct 2012 (TBC)
Venue: SIS GSR 3.5
Participants: 50 SMU Students


Individual Reflection

Madeline

I realize the importance to balance between team capabilities, client and supervisor expectations. It is meet everyone's expectation because we have to take into consideration on the tight schedule as everyone of us have others mods which we need to focus on apart from FYP. However, i feel glad that our group is able to create an web application that would be able to enable more users to know about B1G1 and provide them an ease in contributing to the B1G1 Projects. I hope that despite the difficulties which we may face along the way, our application can be successfully deployed to help B1G1 in reaching out to a wider target audiences and to gain more givings for the beneficiaries.

Tan Chang Kiat

While my team and I have faced difficulties during our development, especially during the integration phase, we felt that what we have done so far is meaningful because we are doing this project for a worthy cause by value adding to the giving process of business members. This can in turn help the beneficiaries of the projects.

Pei Wen

Having been halfway through this FYP journey, it has definitely been a fruitful one. I understand the importance of working as a team as well as the management of our stakeholders to make B1G1 Connect a success. We had faced great challenges during our development, but felt that it is all worthwhile when we were able to solve these difficulties and give back to the society by helping B1G1 members to enhance their Giving process. With this, I am looking forward for our application to be successfully deployed!

Zac

The FYP journey has been meaningful and fruitful, apart of learning and implementing new technical knowledge, I have also gain a better insights in team building and team learning. Together we strive and learn from each other. In addition, I have also deepen my collaboration and liaising skills through the interactions with clients and other FYP teams. Lastly, I believe through the long hours we spent together brainstorming of idea, programming of functionalities, resolving and overcoming of technical obstacles; we have transform from strangers to friends. The skills we learnt today may be obsolete one day but the ties we built will last a long way. Hurray Team Verendus!! Lets conquer the last stretch of the FYP race together!

Mardiana

I've learnt the importance of time management i.e. learnt how to manage and not to underestimate the assigned tasks with a tight time frame. Juggling with other school and work commitments is one thing, on the other hand, it became so crucial for me to learn how to manage all the tasks at hand as well as to establish good work relationship with the client and the team. As a team, I'm glad that we learnt the ability to handle changes of project scope and requirements - with a gusto! It has been a difficult road; our team has came so far to get where we are now. As much as I'm excited to see the final product, I know that I will definitely miss the journey we went through together. :)