HeaderSIS.jpg

2012T1 Team Verendus Final Wiki

From IS480
Revision as of 10:37, 30 November 2012 by Sitim.t.2010 (talk | contribs) (→‎Sponsor Comments)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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 Final Presentation Slides here!

Try our application @ https://b1g1.com/connect!

Progress Overview

We have reached the final iteration, iteration 9 with the assigned tasks and additional functionalities implemented promptly in place. The application currently fully deployed and has gone through 3 user testing after midterms. From the feedbacks that we have received, the following are the completed tasks and changes after midterms:

Verendus Final changes.jpg


Project Highlights

Here are the highlights after midterm presentation:

  • Changes to Additional functionality
  • Changes to UI
  • User Testing from Selected Live B1G1 Users and B1G1 Team


Project Challenges

While the IS480 journey may be an enjoyable experience, our team have faced numerous challenges along the way. As the saying goes, "No pain, no gain!"

Adaptability to new programming language & skills

  • PHP, jQuery and AJAX were new programming skills to us and we spent quite some time to understand and to adapt these languages into our development environment. Fortunately, knowledge sharing was able to take place within the team and thus we found it easier to understand as a team.

Difficulty with understanding of B1G1 Database

  • The B1G1 database was a complexed one. Hence, in the initial phase of our project, we faced difficulties in the integration between B1G1’s existing database system and our team’s web application. However, we made the effort to assess and understand the database scheme as a team. If there was any point we could not resolve an issue, we consulted the sponsor for further clarification. It was fortunate that we had a supportive sponsor who is constantly ready to answer our enquiries. In whole, not only we able to integrate fully, we also managed to forge a good relationship with our client.

The need to achieve client’s expectations

  • It was not easy to manage client's expectation and to complete assigned tasks on time for deployment due to our other commitments.


Difficulty in understanding the whole giving process as a team
Challenge.jpg
As our team was not familiar with how to contribute to social causes via technology, one of the major challenges we faced was all of us were not on the same page or did not have a common understanding on the rationale behind B1G1's giving process. Therefore, we faced difficulties in understanding the entire giving process as a team - as all of us have a different idea/perception towards the giving process (which the picture depicted what we faced); this has restricted us to develop the web application smoothly during the initial stages.

However, through numerous discussions, we have clarified our uncertainties with each other and ensured that every team member is on the same page. We also make sure that all of us have a common understanding on B1G1 Giving Process.

Project Achievements

IS480 project has allowed our team to undergo a real business-IT situation and given us an opportunity to apply IT solutions to the problems faced. From the project, we have achieved the following:

  • Applied project management and time management skills
    • We have achieved the necessary project management skills - to be able to plan, organize, manage, utilize resources to achieve project objectives. We have also achieved in excellent time management skills - to be able to plan and manage our time properly with other work commitments that we might have, but at the same time achieve project milestones/deadlines with enhanced quality in our work.
  • Enhanced our technical skills on PHP language, jQuery and AJAX skills
    • Through the initial practical programming sections, self-research and aiding each other with programming difficulties that we faced throughout FYP, we have definitely increased our knowledge in PHP, jQuery and AJAX.
  • Better communication skills with the team and stakeholders (i.e. Supervisor & Client)
    • Being in a self-managed team, we have improved on our interpersonal communication skills. Through the liaison needed between the team and our stakeholders, we understand how to communicate effectively with each other so that all of us are on the same page so that the project can proceed smoothly.
  • Quality team dynamics
    • We managed to collaborate well with each other and communicate with each other effectively.

Project Management

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 26/09/2012 28/09/2012
Notification to User for Project Expiration 24/09/2012 28/09/2012 Notification to User for Project Expiration 22/09/2012 26/09/2012
Improvements to UI 22/09/2012 28/09/2012
8 Quick Tour 18/10/2012 18/09/2012 Quick Tour 22/10/2012 22/10/2012 Delay in implementation of Quick Tour due to delay in getting client's approval for quick tour's UI
Improvements to UI 15/10/2012 28/10/2012 Improvements to UI 15/10/2012 28/10/2012 Changes to UI due to feedback from client and UT #2
Implementation of Projects Function for individuals 18/10/2012 23/10/2012 Added due to user's suggestion from UT#2
Changes to Location Function (Full screen view, search for businesses) 18/10/2012 28/10/2012 Added due to user's suggestion from UT#2
9 Leverage Function 06/11/2012 12/11/2012 Leverage Function 15/11/2012 19/11/2012 Delay in implementation of leverage function as the IT representation is on holidays, thus unable to retrieve information from the IT representation to start working on the function
Individual Giving 05/11/2012 12/11/2012 Recommend Business 12/11/2012 19/11/2012 Client request to remove individual giving as they prefer individuals to use the current function which they have called "Giving Life" for individual giving instead. Thus, the new additional functionality, "Recommend business" which allows users to recommend businesses whom they want to see as B1G1 business member has been confirmed on the meeting on 08/11/2012
Email Notification to Individuals on support information 05/11/2012 10/11/2012 Profile Image Cropping for individual users that logins via B1G1 account 05/11/2012 11/10/2012 Email notification is removed as users are able to view their support details from impact page. Hence, client suggested adding cropping profile picture as an additional functionality to allow users to upload and crop the profile image which they prefer
Search Project Function 15 Nov 2012 20 Nov 2012 Additional function requested by client after UT#3


Project Metrics

Verendus Final Schedule Metric.jpg
The schedule metric ratio for iteration 1-6 has been explained in the https://wiki.smu.edu.sg/is480/Mid_Term_Wiki.

From iteration 7-9, our schedule ratio remains fairly constant as our project progress has been on schedule. However, there was a hike in schedule metric ratio in iteration 8, this is because after UT#2, there has been several constructive feedbacks from both the client and the users. Thus, our group spent some time to discuss the changes with our client and has spent a longer than expected time to make the changes as we need to ensure that our application is able to satisfy the requirements before we do our deployment to the live server.

Bug Metrics

Verendus Bug metric.jpg
The bug metric analysis for the iterations 3-7 has been covered in https://wiki.smu.edu.sg/is480/Mid_Term_Wiki.

On iteration 8 and iteration 9, the bug score increases during this two iterations due to the extensive testing which was conducted from the team and the user testings conducted. In iteration 8, the bugs were caused mainly from the shift from test server to live server, where functions such as sharing via facebook did not work after deployment during our user testing. On iteration 9, the bugs was mainly caused by the implementation of the additional functionalities where the team faced slight problems with implementing functions such as project search.

Technical Complexity, Framework and Architecture

Technical Complexity

Design a user interface which is suitable for most computers and devices

Ever since we started on this project, we have been facing difficulties catering to the different resolutions of mobile devices and computers. As we implement new features and pages, we have been spending a reasonable amount of time on improving the user interface so as to make it suitable for the different mobile devices and computers.

In some cases, the alignment issues are more difficult to solve. For example, adjusting the alignment of a divider may fit the resolution of computers but when viewed on mobile devices, there are unwanted gaps. Therefore, the solution we adopted is to find the “best-fit” alignment for both mobile devices and computers. Using the example earlier, we have to adjust the divider so that it does not look too out of position on both mobile devices and computers.

Complexity encountered when implementing additional functionalities
  1. Project Search: This feature consists of a real time search function which detects key press and retrieve any project name with the keywords from the database and populates the list. One of the difficulties we faced is to re-populating the list when new key presses are detected. We have to ensure that the results do not overlap by checking that there are no multiple requests made to retrieve the results at the same time.

    We had also faced difficulties integrating new and existing functions together for this feature. Some of the existing functions are pages and selecting of public projects. While the individual existing functions work by themselves, they do not work properly when integrating with the real time search function. In order to solve this problem, we re-coded some of the existing functions in order to ensure that the existing functions integrate well with the real time search function.

  2. Full Screen Map: For this additional functionality, we reused the map of the existing location feature. However, we faced two difficulties when we are trying to expand the map to full screen:
    1. Alignment of the full screen map:
      We have to search online for solutions and trial-and-error with the CSS settings. After testing on the smartphones and laptops which we have, we had to test it on more mobile devices to ensure that there are no alignment issues on most mobile devices.
    2. The user’s current location is not being displayed when the map is expanded:
      We managed to find the root cause of this problem. Google Map does not allow too many requests at once. Before expanding the small map, it has already made multiple requests to Google Map in order to display the location of the B1G1 business members. Therefore, when expanding to the full screen map, our web application is not able to make request to Google Map to display the user's current location first. We solved this problem by ending the requests made by the small map, expand the map and make the requests to display the user's current location first before displaying the location of the B1G1 business members.

Framework

Structure of our web application






The framework which we used for our web application is the Model-View-Controller (MVC). By adopting this framework, the files are mainly organized as Model, Data Access Object (DAO), Controller, View.

  • Model: used to store information.
  • Data Access Object (DAO): used to retrieve and store information inside the database.
  • Controller: used to retrieve and store information using the DAO and contains all the logic needed to process the information.
  • View: used to display the information; the user interface of our web application.

The image on the left shows how these files are organized for our web application. The View files are stored in the 'root' folder.

Verendus MVC Example.jpg












The image on the left is an example of the relationship between the Model, Controller, View files and Data Access Objects. It shows two View files (location.php, business_profile.php), one Controller (BusinessController.php), one Data Access Object (BusinessDAO.php) and one model (Business.php). If we want to change the set of data retrieved from database, we can simply change the SQL statement in the BusinessDAO.php. The View files will be able to retrieve the data through the BusinessController.php and display the results accordingly. Changing the logic of a method in BusinessController.php will also affect results being displayed in the View files.


How MVC has helped us:

  • MVC decouples the Model, View and Controller files to increase flexibility and reuse.
  • Migrating from Local Host to Client’s Test Server.
    • We change only the SQL statements in the Data Access Objects (DAO).






Architecture

Verendus Architecture Final.jpg

Deployment

We have deployed our web application to the client's live server on 30th October 2012. After deployment, we conducted a User Testing (UT#3) from 1st - 2nd November 2012. Other than testing the usability of the application, we conducted UT#3 to test if there is any bugs found when using our web application on the live server.

User Testing

We have conducted a total of 4 User Testings, summing up to a total of 102 Participants throughout the 4 sessions.


User Testing #1
User Testing 1 was a close group system testing with the B1G1 Team, focusing on the functionality aspect of the system. More details for the UT1 can be found here.
Verendus uat1 testresult5.png


User Testing #2
User Testing 2 was conducted on 61 participants , who responded our request via Facebook, focusing on the functionality aspect of the system. More details for the UT2 can be found here.

Verendus uat2 overall.png


User Testing #3
User Testing 3 was a conducted on 33 parictipants , who responded our request via Facebook, and 4 B1G1 Team members focusing on the usability aspect of the system. More details for the UT3 can be found here.
Verendus UT3 Overview.png


User Testing #4
User Testing 4 was conducted with 3 employees from the B1G1 team and 5 selected real B1G1 business members. The test focuses on usability of the application and receiving of feedback from real B1G1 business member to have a better understanding of the things which could be done to improve B1G1 Connect.
This is the usability score which has been calculated:
Verendus UT4.jpg

From the feedbacks, we analyzed that 80% of the B1G1 users think that B1G1 Connect is able to help them to simplify their process of giving and 100% of the users agreed that supporting a project is their favourite function in the application. We have also noted the potential areas of improvements for the application and we will go through these useful feedbacks with the client.

Risk and Mitigation

Risk Mitigation
Unable to deploy on time
  • After all the long hours and efforts spend, its our wish that our system to be deployed and used by our client. It was scheduled to be deploy by week 11, however, we are concerned that we might missed the scheduled time frame.
Monitor schedule closely and communicate with client actively
  • In monitoring the schedule closely, we are able to better manage our time and commitment that we are able to complete the necessary requirements on time and deploy successfully
  • By ensuring a constant and consistent communication, we are able to ensure we dismissed all necessary enquires and doubts timely
Other work commitments
  • Other modules/assignments/presentations/tests
  • CCA
  • Compassionate reasons
  • Personal reasons
Keep PM and team updated of each other’s schedule
  • Keeping our PM and team updated allows us to planned ahead and dispose any unnecessary conflicts
  • We will look back in the minutes and complete the necessary tasks allocated
Lack of participants
  • UT2 and UT3 has different objective; System functionality and usability respectively
  • We do not want participants who have prior experience in our system to participate in UT3
Be more pro-active in seeking for assistance
  • We source of participants from every walk of our life (i.e. Lecturers, friends, acquaintances, classmates, relatives and neighbors)

Reflection

Team Reflection

What we want to learn from IS480?

Outcome1.JPG
  • We learnt from SE that in a typical project, changes are inevitable and always constant. Therefore, we wished to apply the change management skills we learnt in classroom onto IS480 and at the same time, managing our schedules properly to ensure that we are still able to deliver the final product on time and of the best quality.
Outcome2.JPG
  • Since PHP is fairly a new programming language to most of us, we hope that through the FYP journey, we will be well equipped and be knowledgeable with PHP language.
Outcome3.JPG
  • We hope that through this FYP, we would get to experience an actual business-IT situation. We hope that this experience will allow us to have a feel on the real IT industry and better prepare ourselves before we enter workforce.

What we learnt from IS480?

Outcome4.JPG
  • We learnt how to assess the client's expectations and changes whenever required and discussed thoroughly on whether we can achieve what the client wishes to achieve. As much as we can, we do our best to accomplish the functions that our client wishes to have.
  • Next, we learnt how to establish the expectation baseline with our client. We communicated effectively with our client to let her understand what are those that we can do for her. Also, we address the expectations through clear documentation so that all of us will be on the same page.
  • Lastly, our team established a common goal so as to meet what has been promised to the client. We learnt to lend each other a helping hand whenever required to ensure that we meet our milestone on time.
Outcome5.JPG
  • With the FYP coming to an end, we are glad that we are proficient with PHP language. Although the initial stage was a tough one for us, our frequent hands-on session together has allowed us to better understand the language. Also, our team have self-learnt jQuery and AJAX skills in order to enhance the functionalities in B1G1 Connect.
Outcome6.JPG
  • Through this FYP, we are glad that our client gives us an opportunity to understand how to apply project management skills onto a live-project. From the liaison to development to testing, we definitely have a better understanding on how an IT project supposed to proceed.


Individual Reflection

Madeline reflection.jpg


Changkiat reflection.jpg


Chinpeiwen reflection.jpg


Zac reflection.jpg


Mardiana reflection.jpg













































































Masami comments.jpg