HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2010T2 Let’s Give!"

From IS480
Jump to navigation Jump to search
 
(36 intermediate revisions by 4 users not shown)
Line 34: Line 34:
 
|||XU Xiao Yue
 
|||XU Xiao Yue
 
|}
 
|}
 +
 +
Deployment: [http://www.buy1give1.info/givingcentral/production1/home.php Link to client site deployment]
 +
 +
Youtube Introduction: [http://www.youtube.com/watch?feature=player_embedded&v=zv1YX5OABhU B1G1 Giving Central Intro]
  
 
Established in 2007, [http://www.b1g1.com Buy1Give1's] (B1G1) mission is to provide the systems, structure and inspiration to turn our world into a world full of giving, thus directly creating a much happier world. B1G1 gives businesses and individuals the power to change lives; by transforming giving from an ad-hoc, event-driven model to a very specific transaction-based giving model — a world where every transaction gives back and makes a difference.
 
Established in 2007, [http://www.b1g1.com Buy1Give1's] (B1G1) mission is to provide the systems, structure and inspiration to turn our world into a world full of giving, thus directly creating a much happier world. B1G1 gives businesses and individuals the power to change lives; by transforming giving from an ad-hoc, event-driven model to a very specific transaction-based giving model — a world where every transaction gives back and makes a difference.
Line 39: Line 43:
 
This makes giving an effortless habit, changing lives and making a difference every second, every day and in every little way. Until now, B1G1 has brought the power, resonance and ‘connected-ness’ of transaction-based giving and Impact-Based Giving to literally hundreds of thousands of small-to-medium-scale enterprises (SMEs) that form the backbone of every economy.
 
This makes giving an effortless habit, changing lives and making a difference every second, every day and in every little way. Until now, B1G1 has brought the power, resonance and ‘connected-ness’ of transaction-based giving and Impact-Based Giving to literally hundreds of thousands of small-to-medium-scale enterprises (SMEs) that form the backbone of every economy.
  
[[Image:B1G1 Posterv4.png|thumb|425x599px|right|Team Lets Give! Poster]]
+
[[Image:B1G1 Posterv4.png|thumb|400px|right|Team Lets Give! Poster]]
  
 
=='''Introduction'''==
 
=='''Introduction'''==
Line 58: Line 62:
 
*[mailto:peien.lau.2008@smu.edu.sg Lau Pei En] - '''Developer'''
 
*[mailto:peien.lau.2008@smu.edu.sg Lau Pei En] - '''Developer'''
 
**Principal developer for logic and back-end classes
 
**Principal developer for logic and back-end classes
**Liaises with sponsors and key stakeholders regarding functionality and how feasible they are
+
**Liaises with sponsors and key stakeholders regarding functionalities and how feasible they are
  
 
*[mailto:xyxu.2008@smu.edu.sg Xu Xiaoyue] - '''Developer'''
 
*[mailto:xyxu.2008@smu.edu.sg Xu Xiaoyue] - '''Developer'''
 
**Developer for both Front-End and Back-End Components
 
**Developer for both Front-End and Back-End Components
**Subject expert in terms of bridging functionality and design requirements
+
**Subject expert in terms of bridging functionalities and design requirements
  
 
*[mailto:soesandytun.2008@smu.edu.sg Sandy Tun] - '''Database and Facebook Subject Expert'''
 
*[mailto:soesandytun.2008@smu.edu.sg Sandy Tun] - '''Database and Facebook Subject Expert'''
Line 114: Line 118:
 
=='''Project'''==
 
=='''Project'''==
 
==='''Overview'''===
 
==='''Overview'''===
 +
[http://www.youtube.com/watch?feature=player_embedded&v=zv1YX5OABhU B1G1 Giving Central Intro]
 +
 
===='''Description - Project "Design Your Life"'''====
 
===='''Description - Project "Design Your Life"'''====
 
Charity is, more often than not, a one off event driven by campaigns and drives. The '''"Design your Life"''' project aims to build an interactive web page that aids [http://www.b1g1.com Buy1Give1] (B1G1) in raising awareness of worthy causes; by showing the general public the potential each individual has in creating an impact on others’ life. The web page will be accessed by both B1G1 members and non-members. All users are able to enter their daily lifestyle and the web page would generate how one can support the various initiatives under B1G1 that is complementary to their personal lifestyle and preferences.
 
Charity is, more often than not, a one off event driven by campaigns and drives. The '''"Design your Life"''' project aims to build an interactive web page that aids [http://www.b1g1.com Buy1Give1] (B1G1) in raising awareness of worthy causes; by showing the general public the potential each individual has in creating an impact on others’ life. The web page will be accessed by both B1G1 members and non-members. All users are able to enter their daily lifestyle and the web page would generate how one can support the various initiatives under B1G1 that is complementary to their personal lifestyle and preferences.
Line 137: Line 143:
 
*Bring the businesses and individuals together to a community
 
*Bring the businesses and individuals together to a community
  
===='''Analysis'''====
+
===='''Evolution of Design'''====
====='''Story Board'''=====
+
====='''Current Version  - Screnshots/Walkthrough'''=====
 +
'''Home Page'''
 +
 
 +
[[Image:LG Slide1.PNG|500px]]
 +
 
 +
This will be the landing page the user will be redirected upon clicking on the Giving Central Link upon in the main B1G1 page. The main objective of this page is to inform the user the concept Giving Central is building upon. Future plan for the site includes a streaming video that will more effectively educate and reach out to visitors, especially those who are new to the Buy 1 Give 1 concept.
 +
 
 +
 
 +
 
 +
'''Select Categories to Give'''
 +
 
 +
[[Image:LG Slide2.PNG|500px]]
 +
 
 +
This page allows users to choose their selected categories of giving. In addition, the search bar above (as circled in yellow) can allow users to visit their friends and see how far they have accomplished in their giving quest. After the categories are selected, click
 +
 
 +
 
 +
 
 +
'''Select Projects from Categories'''
 +
 
 +
[[Image:LG Slide3.PNG|500px]]
 +
 
 +
After the categories are selected, you can select the various projects that are associated with the categories you have chosen. Mouseover the projects to view the project details and click on the project image to select the project you are interested to give to.
 +
 
 +
Alternatively, you can click on the “Refine Search” button as circled in blue to refine your search criteria for the project of your interest.
 +
If a project caught your eye but you want to know more about it, you can click the “More Details” button for more details like the full description of the project and the organization that supports it from a full window display.
 +
If you decide to have more categories to be added, click on the link “Add more” as circled in green to go back to the “Add Category” screen for more categories to be added for giving.
 +
Click on “Save Details” button at the bottom right of the screen to proceed .
 +
 
 +
 
 +
 
 +
'''After Project Selection - User Controls'''
 +
The left hand side of the page collapsible bar menu displays:
 +
 
 +
'''Giving Impact to date'''
 +
 
 +
[[Image:LG Slide4.PNG|500px]]
 +
 
 +
The current impact you have made for the worldwide community
 +
 
 +
 
 +
 
 +
'''User Profile'''
 +
 
 +
[[Image:LG Slide5.PNG|500px]]
 +
 
 +
You user profile currently from B1G1 or Facebook. You can edit the details or edit your display picture if you like. In addition, if you are not comfortable for others to view you profile or giving status, you can toggle your profile setting to “Private” instead of the default “Public”
 +
 
 +
 
 +
 
 +
'''Awards'''
 +
 
 +
[[Image:LG Slide5.PNG|500px]]
 +
 
 +
Accomplishments you have made thus far. Awards are not just based on monetary giving accomplishments but also other criteria like how many friends have brought to the site or how many business recommendation have you made.
 +
 
 +
 
 +
 
 +
'''Favourite Businesses'''
 +
 
 +
[[Image:LG Slide6.PNG|500px]]
 +
 
 +
Your favourite businesses that you have added from your Shop and Give Profile. You can also recommend new businesses to be added in if you have businesses who are socially responsible and are interested in the buy one and give one concept.
 +
 
 +
 
 +
 
 +
'''Pledge'''
 +
 
 +
[[Image:LG Slide7.PNG|500px]]
 +
 
 +
A giving tracker that let you state a giving goal and track how much have you worked towards it.
 +
 
 +
 
 +
 
 +
'''Giving Planner'''
 +
 
 +
[[Image:LG Slide8.PNG|500px]]
 +
 
 +
From the project selection page, you can now decide how much you want to impact by editing the values for each project you want to give to (as circled in red).
 +
 
 +
[[Image:LG wiki outline.png|500px]]
 +
 
 +
Click on the “Make it Happen” screen to be forwarded to Paypal site for transactional information to be entered.
 +
After which you will be returned to the Giving Central again.
 +
 
 +
 
 +
'''Giving History'''
 +
 
 +
[[Image:LG Slide9.PNG|500px]]
 +
 
 +
You can view the giving you have made till current date on this page. All entries are arranged in chronological order.
 +
You can even click on the “share” button to share your giving on Facebook to encourage your friends to give too!
 +
 
 +
 
 +
'''Shop and Give'''
 +
 
 +
[[Image:LG Slide10.PNG|500px]]
 +
 
 +
Beside giving, you can add businesses that readily gives to the categories/projects that you have chosen into your favourite list. By buying from them, you too, impacts those whom you are giving indirectly!
 +
 
 +
====='''Version 2 - Story Board'''=====
 
{|
 
{|
 
|-
 
|-
Line 163: Line 268:
 
|}
 
|}
  
===='''Design'''====
+
====='''Version 1 - Story Board'''=====
====='''Architecture Overview'''=====
+
Archived in PowerPoint format
 +
[[Media:LG_Storyboardv1.ppt‎|here]]
 +
 
 +
====='''Use Case Diagram'''=====
 +
 
 +
[[Image:Giving central.png]]
 +
 
 +
===='''Architecture Overview'''====
 
[[Image:ArchitectureB1G1.png|700px]]
 
[[Image:ArchitectureB1G1.png|700px]]
  
Line 424: Line 536:
 
<br>
 
<br>
 
Facebook login will extract the user's current city/counttry of residence and match it according to B1G1 list of business partners. That will ensure relevant businesses are recommended to users as opposed to recommending users businesses which are not within the user's country of residence.
 
Facebook login will extract the user's current city/counttry of residence and match it according to B1G1 list of business partners. That will ensure relevant businesses are recommended to users as opposed to recommending users businesses which are not within the user's country of residence.
 
=='''Quality'''==
 
===='''Bugs'''====
 
===='''UAT'''====
 
===='''Heuristics'''====
 
===='''Functionality'''====
 
===='''Usability'''====
 
===='''Testing'''====
 
  
 
=='''Execution'''==
 
=='''Execution'''==
===='''Code'''====
 
===='''Documentation'''====
 
 
==='''Deployment'''===
 
==='''Deployment'''===
 +
The system is deployed at:
 +
[http://www.buy1give1.info/givingcentral/production1/home.php Link to client site deployment]
 
===='''Test Plan'''====
 
===='''Test Plan'''====
 
2 versions of UAT has been created. First (Long) version used mainly for regressional testing to be done by SIS Peers and B1G1 Staff that spans from validation to functionality and heuristic feedbacks
 
2 versions of UAT has been created. First (Long) version used mainly for regressional testing to be done by SIS Peers and B1G1 Staff that spans from validation to functionality and heuristic feedbacks
Line 446: Line 550:
 
<br>
 
<br>
 
[[Media:Final_UAT_Test_Case_v5.docx‎|UAT Short Version]]
 
[[Media:Final_UAT_Test_Case_v5.docx‎|UAT Short Version]]
 
===='''UAT'''====
 
  
 
=='''Resources'''==
 
=='''Resources'''==
Line 475: Line 577:
 
This ensures a faster development process and unified interface design.
 
This ensures a faster development process and unified interface design.
  
 
+
====Effective Communication with Client====
 
+
Although our sponsors are wonderful and supportive people, there is will always be barriers in conveying requirements and changes along with updates along the way. It took us something before we can find the right balance. The constant need for communication means the PM will be burden with communications overheads as a middlemen. This is changed during the later part of the project where teamview (desktop remote software) along with skype is used. Masami frequently used skype to communicate with us about changes and requirements on top of forthnight meetings. This ensure constant changes and no "big" bottlenecks coming up after a meet with sponsors.
==='''Team Reflection'''===
 
====Communicating effectively with sponsors====
 
 
 
 
 
  
 
==='''Individual Reflection'''===
 
==='''Individual Reflection'''===
Line 506: Line 604:
 
your “big” 6 members team is going to supplemented by even 2 more members , our client themselves
 
your “big” 6 members team is going to supplemented by even 2 more members , our client themselves
 
- Masami and Paul. That was never an overstatement. Right from inception of the project concept to
 
- Masami and Paul. That was never an overstatement. Right from inception of the project concept to
the UAT and presentation, they have been sticking together us, guiding and giving us various advices in
+
the UAT and presentation, they have been sticking together with us, guiding and giving us various advices in
every single way I can think of.
+
every single way we might have problem with.
  
 
Myself, as I believe the team as well, as grown tremendously in competency as well as mentally during
 
Myself, as I believe the team as well, as grown tremendously in competency as well as mentally during
Line 515: Line 613:
 
its eventual launch.
 
its eventual launch.
  
=='''Deliverables**'''==
+
====Chin Hong====
==='''Use Case Diagram'''===
+
The biggest takeaway for this project for me is time management. In this semester, I took 5 modules and for 2 of the modules, EI is a pre-requisite module for EWS. The last few weeks of the semester were really hard as I had to work round the clock and slept very little. Thus, I have to manage my time such that I will rest enough for my brain to function properly and I will have enough time to finish my work and studying for my exams.
==='''Use Case Descriptions and Technologies Used'''===
 
==='''Mobile Version Screen Shots'''===
 
==='''Test Plan'''===
 
==='''Source Codes'''===
 
==='''User Manual'''===
 
==='''Presentation Slides'''===
 
 
 
 
 
 
 
 
 
=='''Old Wiki---------------------------------------------'''==
 
 
 
 
 
=='''Project Overview'''==
 
 
 
 
 
 
 
 
 
  
 +
Secondly, I learned about conflict management. Although I feel that our team dynamics is quite good, conflicts are bound to occur and this FYP experience taught me more about conflict management. During crunch time, members in the team might be on a shorter fuse and I learned to be more sensitive to my team members.
  
 +
Thirdly, I learned about the importance of communication with stakeholders. During the first 8 weeks, we didn’t connect with the sponsor enough and we had to have a session to align both the sponsor’s and our expectations immediately after the mid-term review. After the mid-term review, our team takes a more proactive approach to communicate with our client and things moved faster and clearer.
  
==='''Current Status'''===
+
====Sandy====
*Collapsible Side Menu  [<b>Completed</b>]
+
I was mainly responsible for the integration Facebook features such as Single Sign-on and Wall Post Sharing, with Buy1Give1 Giving Central. The module I was responsible for in a way marks the starting point of most use cases we have. Features such as pledges and contribution summary, are based on the user details inserted when a new user registers. Therefore, there are quite a few situations where I have to modify the back end database processing for logging in to accommodate the seamless transition for one module to another. Collaboration was brought into the spotlight and was essential to the success of this project.
*Giving Impact Calculator [<b>Completed</b>]
 
*JCarousel Project Browsers [<b>Completed</b>]
 
*Project Search with QTip [<b>Completed</b>]
 
*Search Function for Projects [<b>Completed</b>]
 
*Facebook Sign on [<b>Completed</b>]
 
*Filters
 
*Paypal Integration
 
*Business Giving Central [<b>Removed from FYP scope... BUT WILL BE DONE!</b>]
 
*Awards Module
 
*Business Recommendation
 
*Business Connections
 
*Daily Habits Calculator Interface
 
*Giving History
 
  
===Metric===
+
Though our project team was self-formed and all the group members have known each other for quite some times, we had some miscommunications issues. I have also realized myself that sometimes, I tend to get carried away by the problems I had outside FYP and bring those problems to fyp meetings. Such occurrences might impose a negative atmosphere among the team and cause unnecessary problems. Moreover, even best friends get into arguments and fall out with each other. The important thing is to be straightforward with each other and clarify the doubts. Good friends, teammates are not to be taken for granted.
===='''Metrics'''====
 
To facilitate effective project management, 2 metrics are used.
 
  
====='''Schedule Metric'''=====
+
====Xiaoyue====
*Measures schedule effectiveness
+
I have experienced a dynamic team work during this final year project. Everyone is excited about learning something new and works on assigned task diligently. I feel that the major difficulty which I encountered during the development phase is trying to understand and customize the codes of various libraries(i.e. qTip, JCarousel) based on JQuery.
*Reviewed after each week and iteration
 
*Schedule Effectiveness Index = Actual Completed Time (days) / Estimated Time (days)
 
  
======'''Weekly Action Plan'''======
+
I also appreciate meeting with our supportive clients as they contributed so many ideas in interface and functionalities. I have learnt to inform our clients any detailed doubts as there would be more and more details that need to be clarify along programming. The greatest takeaway during liaison with clients is to balance their expectation with our team’s feasibility within limited time. As a result, I learnt
{| class="wikitable" border="1"
+
to set priority to finish major functions first.
|-
 
!  SEI
 
!  Action to be taken
 
|-
 
|  <0.5
 
|
 
*Look into why functionalities are completed in such a rapid pace
 
*Revision of Schedule for ongoing iteration
 
|-
 
|  0.5 - 1.5
 
|
 
*Normal Pace
 
|-
 
|  >1.5
 
 
*Look into the reasons behind the slow progress
 
*Revision of Schedule
 
|-
 
|}
 
  
======'''Iteration Action Plan'''======
+
We have really left a lot of work to be done after midterm. I am amazed at the progress in the second half semester due to improved project management / process and dedicated work of our teammates. The major improvement of project management is assigning interface part to a fixed team and back ended part to another team. I found it really useful and efficient to tapping on each member’s strength and we don’t need to go through a long learning curve to learn everything.
{| class="wikitable" border="1"
 
|-
 
!  SEI
 
!  Action to be taken
 
|-
 
|  <0.7
 
|
 
*Overestimated Task Schedule
 
*Revision of Schedule for next iteration(s)
 
*Possible Enhancements or Functionalities to be implemented
 
|-
 
|  0.7 - 1.3
 
|
 
*Normal Pace
 
|-
 
|  >1.3
 
 
*Underestimated difficulty of tasks
 
*Need to allocate more meetings and time
 
*Revision of Schedule for next iteration(s)
 
*Look into dropping of non-critical functionalities
 
|-
 
|}
 
======'''Metric Chart'''======
 
[[Image:Metric1.JPG]]
 
  
====='''Bug Metric'''=====
+
====Shank====
*Dictates action to be taken when dealing with bugs
+
This was by far the busiest semester of my SMU life. Lesson learnt. Never take 4 IS modules in one semester. Especially when one of the modules is FYP. Yet, looking back, it is the most rewarding one by far. Having the same team for all of the 4 projects ensured that we knew each other's working style and habits and this led to much more work getting done instead of pointless discussions over what is the right approach. Of course, our team's friendliness also meant that much of our time was spent "bonding", to the point of wasting time! Some 6 hour meetings involved 5 hours of eating and "talking cock". At the end of every such meeting, we realized that we had to stop such situations from happening again, but alas, our friendship got in the way. Yet, we somehow managed to circumvent such a fatal flaw by determination and more importantly, the strict direction of our team leader and project manager, Mr. Tan Jian Wei.
*Provides a tangible indication and action plan
 
*Iteration Bug Severity (IBS) = ∑ (No. of bugs x bug severity level) per iteration
 
  
======'''Bug Severity Level'''======
+
Time management was necessary given the dire situation we were in. Countless of sleepless nights were put into all the different projects and it seemed like eternity before the end of the semester. This meant that we had to make sure the team was on the right page at every part of the project. Updates on the teams progression and new requirements had to be broadcast to the team to ensure that everyone's resources were being utilized effectively. This only worked as our team was a proactive group, and this led to efficient task allocation without any grousing.
  
{| class="wikitable" border="1"
+
Another one of our groups strengths was that we were a highly rational group of people. All our decisions were astoundingly sound and this undoubtedly led the the creation of our final product. We knew when it was time to argue and this led to rock-solid proposals and sound decisions of which the counter arguments have been exhausted. At the same time, if there wasn't a case against a proposal or suggestion, we all agreed and carried our the necessary actions swiftly. This saved us time on unnecessary dissent and was part of the reason why our project could have progressed at such a rapid pace even after the mid-terms.
|-
 
!  Severity
 
!  Description
 
|-
 
|  5 - Severe
 
|
 
*Hinders completion of key functions
 
*Affects completed functions of previous built
 
|-
 
|  3 - Normal
 
|
 
*Bug affects key output or other functions of the system
 
|-
 
|  1 - Minor
 
 
*Isolated bug that does not affects other functions
 
*Cosmetically output based bugs
 
|-
 
|}
 
  
 +
Finally, all this wouldn't have come to fruition if not for the constant support from Masami and Paul from B1G1. I realised that the complete co-operation of clients and service providers is necessary for a great project to materialize. Constant communication and iterative feedback has to be present so that both parties do not waste time trying to second guess each other.
  
 +
It was an eye opening experience for me, and this will always be a benchmark for all future projects to come.
  
======'''Bug Resolution'''======
+
====Pei En====
 +
There were both technical and non-technical take away from the FYP journey. In terms of technical aspects, I have definitely gained more experience in programming in a different language. As we are coding in a non-OO manner, I have learnt the importance of having a common framework within the team so that we can better understand each others’ codes and have a smoother integration process. Through the frequent communication with the previous B1G1 team that built the current database, I have experienced the importance of documenting down one’s work in every project. By reading the documentation of the tables, it is much easier to understand the purpose of each attribute of a table, and how the different tables are related. In this way, the next team the works with B1G1 would better and easier grasp the relations between all the tables.
  
{| class="wikitable" border="1"
+
Besides technical skills, I have learnt the importance of work allocation in a team. In order to maximize the amount and quality of the work that can be done in a limited amount of time, it is importance that we tap on one another’s expertise and get the most things done in the shortest amount of time. This would be much more efficient work allocation as compared to ensuring people works on an equal share of everything.
|-
 
!  IBS
 
!  Action to be taken
 
|-
 
|  <4
 
|
 
*Debuggers: 1 - 2
 
*Deadline : Flexible
 
|-
 
|  4-9
 
|
 
*Debuggers: 1 - 2
 
*Deadline : Before next iteration
 
|-
 
|  >9
 
 
*Debuggers: >2 or as necessary
 
*Deadline : Before next iteration
 
*Re-assessment of current implementation
 
|-
 
|}
 
  
==='''Minutes'''===
+
Though the FYP journey, I have also learnt the importance of communication between the team, and with other stakeholders of the project. It is very important to set a common expectation for the project right from the start, and ensure that everyone is on the same page at any one time. I have witnessed how different team members are able to interpret a different workflow from the same story board, and realized at the end of the day that none of us are right. Although the team has came up with a framework to code, it is crucial that we communicate and clarify how the server-side and client-side are going to interact, and what objects are passed, in order to prevent anyone from having to modify their codes later on to cater to the other party. This would greatly improve our efficiency and allow us to have more buffer time in case of any major hiccups at the later period.
  
[[Media:Peien1.docx|Meeting 1]]
+
Overall, it has been a wonderful experience to be able to work with a bigger group of people on a much larger scale and meaningful project that will go live. Of course, all these would not be possible without our very supportive sponsors.  
<br>
 
[[Media:Peien2.docx|Meeting 2]]
 
<br>
 
[[Media:FYP Meeting Minutes4.docx|Meeting 4]]
 
  
==='''Mid Term Review'''===
+
''“B1G1 – Changing the world one transaction at a time”''
[[letsgive_midterm | Mid Term Review Deliverables]]
 

Latest revision as of 14:47, 18 April 2011

Let's Give!
Team Let's Give
Founded Singapore Management University, Dec 2010
Type Private Limited
Area User Experience
Social Media
Web Design
Web 2.0
Industry Non-Profit Organization
Project Design Your Life
Team members CHAN Chin Hong
LAU Pei En
LAU Sheng Shiun
TAN Jian Wei
Sandy TUN
XU Xiao Yue

Deployment: Link to client site deployment

Youtube Introduction: B1G1 Giving Central Intro

Established in 2007, Buy1Give1's (B1G1) mission is to provide the systems, structure and inspiration to turn our world into a world full of giving, thus directly creating a much happier world. B1G1 gives businesses and individuals the power to change lives; by transforming giving from an ad-hoc, event-driven model to a very specific transaction-based giving model — a world where every transaction gives back and makes a difference.

This makes giving an effortless habit, changing lives and making a difference every second, every day and in every little way. Until now, B1G1 has brought the power, resonance and ‘connected-ness’ of transaction-based giving and Impact-Based Giving to literally hundreds of thousands of small-to-medium-scale enterprises (SMEs) that form the backbone of every economy.

Team Lets Give! Poster

Introduction

Team

Team Let's Give! Group Photo

From Left: Tan Jian Wei, Shank Lau, Chan Chin Hong, Sandy Tun, Xu Xiaoyue, Lau Pei En
  • Tan Jian Wei - Project Manager
    • Oversees the Project Progress and manages the team schedule and set objectives for each iterations.
    • Breaks down and assign tasks to group members based on their strengths and schedule and keep track of metrics
  • Chan Chin Hong - Interface Subject Specialist
    • Principle developer for interface and Front-End Components
    • Liaises with sponsors with design requirements and how feasible are they
  • Lau Pei En - Developer
    • Principal developer for logic and back-end classes
    • Liaises with sponsors and key stakeholders regarding functionalities and how feasible they are
  • Xu Xiaoyue - Developer
    • Developer for both Front-End and Back-End Components
    • Subject expert in terms of bridging functionalities and design requirements
  • Sandy Tun - Database and Facebook Subject Expert
    • Implements and integrate various Facebook services with Giving Central
    • Oversees the development of schema for Giving Central's data needs in current B1G1 Drupal CMS-derived database

Mentors

Technical Advisors

Previous FYP teams that worked with B1G1

Stakeholders' Coordination

Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Team Bonding

Coding

Supervisor

Meeting

Internal

Meeting

Discussion

Coding

Meetings are usually with the client are on a fortnight basis.

Due to our close working relationship, meetings may occur whenever either side feels that it is necessary. In addition to meetings, we decided it was far more productive holding email and Skype conversations. This enabled us to accurately provide our client with exactly what they want, instead of second guessing. This saved us much time and ensured the rapid progress of our work.

The project's emphasis on the look and feel of the website meant that rigorous user testing is required. We capitalized on TeamViewer in the initial stages as it was not ready to be migrated to a live server. The client was regularly invited to test out the system whenever we completed a few functions, to ensure the quality of the experience that was delivered via our project. Once it was ready to be migrate to the testing server, regular emails were sent to invite the client to test and comment.

Project

Overview

B1G1 Giving Central Intro

Description - Project "Design Your Life"

Charity is, more often than not, a one off event driven by campaigns and drives. The "Design your Life" project aims to build an interactive web page that aids Buy1Give1 (B1G1) in raising awareness of worthy causes; by showing the general public the potential each individual has in creating an impact on others’ life. The web page will be accessed by both B1G1 members and non-members. All users are able to enter their daily lifestyle and the web page would generate how one can support the various initiatives under B1G1 that is complementary to their personal lifestyle and preferences.

Thus, B1G1 Giving Central was conceptualized by Masami and in 14 weeks, materialized by Team Let's Give.

Add comment here

B1G1 previous projects with SIS has grealy improved their outreach towards business-base giving. Now, the 4th collabration with SIS, Giving Central provides B1G1 a system for the other significant demographics of givers - Individual who wants to give and feel the impacts of their giving as per Businesses who give and impact per every transaction.

Furthermore, besides individual users, current businesses partners with B1G1 will also able to visit the web page and enter their respective revenue and pledge how much they would like to contribute to each initiative in accordance to their revenue. The more initiative the businesses support, the more exposure it gets via B1G1 as individual users who support common causes would discover these particular businesses. This provides an incentive to carry out CSR activities via B1G1 as it would provide exposure to the global market.

Motivation

To increase both businesses' and individuals' awareness of the potential impact they can create by the means of a highly interactive, easy to use and hassle-free website. The final vision, together with Individual Giving Central and Business Giving Central, the website will serves as a "forum" for current B1G1 business partners as well as individuals with like-minded objectives in giving for a better world to meet and collaborate to achieve greater impact to beneficaries around the world.

Objectives

Through this web page, the team hopes to achieve the following objectives:

  • Reach out to the individuals who are unaware of the world of giving.
  • Increase public awareness of their own capability to create an impact on others’ life
  • Incorporate giving as part of an individual and/or business lifestyle
  • Bring the businesses and individuals together to a community

Evolution of Design

Current Version - Screnshots/Walkthrough

Home Page

LG Slide1.PNG

This will be the landing page the user will be redirected upon clicking on the Giving Central Link upon in the main B1G1 page. The main objective of this page is to inform the user the concept Giving Central is building upon. Future plan for the site includes a streaming video that will more effectively educate and reach out to visitors, especially those who are new to the Buy 1 Give 1 concept.


Select Categories to Give

LG Slide2.PNG

This page allows users to choose their selected categories of giving. In addition, the search bar above (as circled in yellow) can allow users to visit their friends and see how far they have accomplished in their giving quest. After the categories are selected, click


Select Projects from Categories

LG Slide3.PNG

After the categories are selected, you can select the various projects that are associated with the categories you have chosen. Mouseover the projects to view the project details and click on the project image to select the project you are interested to give to.

Alternatively, you can click on the “Refine Search” button as circled in blue to refine your search criteria for the project of your interest. If a project caught your eye but you want to know more about it, you can click the “More Details” button for more details like the full description of the project and the organization that supports it from a full window display. If you decide to have more categories to be added, click on the link “Add more” as circled in green to go back to the “Add Category” screen for more categories to be added for giving. Click on “Save Details” button at the bottom right of the screen to proceed .


After Project Selection - User Controls The left hand side of the page collapsible bar menu displays:

Giving Impact to date

LG Slide4.PNG

The current impact you have made for the worldwide community


User Profile

LG Slide5.PNG

You user profile currently from B1G1 or Facebook. You can edit the details or edit your display picture if you like. In addition, if you are not comfortable for others to view you profile or giving status, you can toggle your profile setting to “Private” instead of the default “Public”


Awards

LG Slide5.PNG

Accomplishments you have made thus far. Awards are not just based on monetary giving accomplishments but also other criteria like how many friends have brought to the site or how many business recommendation have you made.


Favourite Businesses

LG Slide6.PNG

Your favourite businesses that you have added from your Shop and Give Profile. You can also recommend new businesses to be added in if you have businesses who are socially responsible and are interested in the buy one and give one concept.


Pledge

LG Slide7.PNG

A giving tracker that let you state a giving goal and track how much have you worked towards it.


Giving Planner

LG Slide8.PNG

From the project selection page, you can now decide how much you want to impact by editing the values for each project you want to give to (as circled in red).

LG wiki outline.png

Click on the “Make it Happen” screen to be forwarded to Paypal site for transactional information to be entered. After which you will be returned to the Giving Central again.


Giving History

LG Slide9.PNG

You can view the giving you have made till current date on this page. All entries are arranged in chronological order. You can even click on the “share” button to share your giving on Facebook to encourage your friends to give too!


Shop and Give

LG Slide10.PNG

Beside giving, you can add businesses that readily gives to the categories/projects that you have chosen into your favourite list. By buying from them, you too, impacts those whom you are giving indirectly!

Version 2 - Story Board

1. User logs in via Facebook landing page Lg 1.jpg

2. Profile Page Lg 2.jpg

3. Giving Categories Lg 3.jpg

4. Select Worthy Cause for Giving Category Lg 4.jpg

5. Refine Search Lg 5.jpg

6. Monthly Giving Page Lg 6.jpg

Version 1 - Story Board

Archived in PowerPoint format here

Use Case Diagram

Giving central.png

Architecture Overview

ArchitectureB1G1.png

Scope

  • Facebook SSO Login
  • Login for Current B1G1 Users
  • Create New Account
  • Categories selection
  • Project Selection
  • Project Popularities (for project detail pop-up)
  • 'Refine Search' feature for project selection
  • 'Skip' feature for project selection
  • Profile edit feature
  • Password change feature
  • Impact calculator (the impact measuring bar and linking the impact with plant images)
  • 'How to grow' info pop-up for Giving impact tab
  • Giving - 'Make it happen process' including the payment part (is it part of final presentation requirement?)
  • Facebook 'Share' button for Giving History
  • Shop and Give feature
  • Business Recommendation feature
  • Award feature
  • Favourite Business feature
  • Pledge feature
  • User's public profile page

Management

Workplan**


Milestones

LGMilestones.png

Metrics

To facilitate effective project management, 2 metrics are used.

Schedule Metric
  • Measures schedule effectiveness
  • Reviewed after each week and iteration
  • Schedule Effectiveness Index = Actual Completed Time (days) / Estimated Time (days)

Weekly Action Plan

SEI Action to be taken
<0.5
  • Look into why functionalities are completed in such a rapid pace
  • Revision of Schedule for ongoing iteration
0.5 - 1.5
  • Normal Pace
>1.5
  • Look into the reasons behind the slow progress
  • Revision of Schedule

Iteration Action Plan

SEI Action to be taken
<0.7
  • Overestimated Task Schedule
  • Revision of Schedule for next iteration(s)
  • Possible Enhancements or Functionalities to be implemented
0.7 - 1.3
  • Normal Pace
>1.3
  • Underestimated difficulty of tasks
  • Need to allocate more meetings and time
  • Revision of Schedule for next iteration(s)
  • Look into dropping of non-critical functionalities

Final Schedule Metric Chart

B1G1 LG Slide48.PNG

Bug Metric
  • Dictates action to be taken when dealing with bugs
  • Provides a tangible indication and action plan
  • Iteration Bug Severity (IBS) = ∑ (No. of bugs x bug severity level) per iteration
Bug Severity Level
Severity Description
5 - Severe
  • Hinders completion of key functions
  • Affects completed functions of previous built
3 - Normal
  • Bug affects key output or other functions of the system
1 - Minor
  • Isolated bug that does not affects other functions
  • Cosmetically output based bugs


Bug Resolution
IBS Action to be taken
<4
  • Debuggers: 1 - 2
  • Deadline : Flexible
4-9
  • Debuggers: 1 - 2
  • Deadline : Before next iteration
>9
  • Debuggers: >2 or as necessary
  • Deadline : Before next iteration
  • Re-assessment of current implementation

Final Bugs Metric Chart

Bugtable.jpg Bugchart.jpg

Risks and Mitigation Strategy

LG Risk and Migitation.png

Minutes

Week 1 Meeting
Weel 2 Meeting
Week 3 Meeting
Week 4 Meeting
Week 5 Meeting
Week 6 Meeting
Week 7 Meeting
Week 8 Meeting
Week 9 Meeting
Week 10 Meeting
Week 11 Meeting
Week 12 Meeting
Week 13 Meeting
Week 14 Meeting
Week 15 Meeting

Suite of Applications

Project Retrieval Algorithm

Project algor.png
1. Projects will be extracted from the database and sorted from lowest to highest price.
2. The projects are then split into 3 price ranges. Low , Medium, High.
3. Although the projects are displayed into groups of 3, in the backend, they are sorted in groups of 4 (in the diagram above, we named it as a "page")
4. A page (the listing of project in groups of 4) always will consist of projects selected from 2 being selected from low priced range group, 1 from medium and 1 from high.
5. The pages after the 1st group is to be queried and retrieve when user clicks on the arrow button from more projects to be added. There is a leeway of 2 "pages" to be loaded, so users will not encounter "lag" or delay issues as this is done in the backend.
These groups are put in random order so that users will know see the same groups of projects appearing whenever he selects the same category.

Country Filter

Country filter.png
Facebook login will extract the user's current city/counttry of residence and match it according to B1G1 list of business partners. That will ensure relevant businesses are recommended to users as opposed to recommending users businesses which are not within the user's country of residence.

Execution

Deployment

The system is deployed at: Link to client site deployment

Test Plan

2 versions of UAT has been created. First (Long) version used mainly for regressional testing to be done by SIS Peers and B1G1 Staff that spans from validation to functionality and heuristic feedbacks
UAT Long Version

Short version that is distributed to Non-SIS Peers and B1G1 Current Users that focus mainly on functionality and heursitic issues.
UAT Short Version

Resources

Technology Used Software Used

Learning Outcomes**

Challenges

Implementation of a website that places importance on heuristics and aesthetics

Up to this point, except in briefly in Software Engineering, all of our IS projects are much more concerned with hard requirements and functionalities. In this aspect, Giving Central has been very different. Aesthetics is a very important part of the project but the main problem with heuristics and even more so for aesthetics are that when a product is refined to a point, it is sometimes subjective. Take for example, the qtip implementation, quite a number of users has commented that the dynamic generation of content is very cool but there are still a few users who commented that they resembles popups. Of course, we can argue otherwise but this only brings to the point that these aspect of the project is quite debatable. The key takeaway here will be that we have to take the majority view.

Learning new implementation tools/languages

In this project, we have to utilise new technologies such as AJAX and JQuery which in turn is coded mainly PHP and Javascript, both in which are not familiar to use who are used to "strict" OO languages instead of scripts. The language beahviour is one thing, but the other more significant barrier which is we would have to implement a project-wide framework in how pass variables (mainly in JSON). Much of our delay in the first half of the project is attributed to these difficulties.

Task allocation

In the early part of the project, we had allocated tasks in terms of modules. For example, Xiaoyue is allocated the Refine Search module, she then is in charge of implementing back-end tasks such as coding of database connection, search algorithm implementation, packaging the retrieved dataset into JSON objects, handling system interacts and dictating system behavior when any interactions happen. This means she will have to know a multitude of skills which is not effective in a time-constraint environment.

On top of that, the lack of a similar framework and unified interface library usage means everyone will use radically different techniques to present information. In our case, there is no forms, no method calling and strict variable passing format to dictate how we pass things around. Interface implementations do not work well together as JQuery libraries just cannot "stack" on top of each other and work perfectly.

The only solution is to specialised the tasks allocated to each member. The team is split into a backend and front-end team. A module when allocated, will be split into back and front end section. Both members responsible of the particular module front and back end will decide what variables to be handed from backend to frontend with the framework set as mentioned in this previous section.

This ensures a faster development process and unified interface design.

Effective Communication with Client

Although our sponsors are wonderful and supportive people, there is will always be barriers in conveying requirements and changes along with updates along the way. It took us something before we can find the right balance. The constant need for communication means the PM will be burden with communications overheads as a middlemen. This is changed during the later part of the project where teamview (desktop remote software) along with skype is used. Masami frequently used skype to communicate with us about changes and requirements on top of forthnight meetings. This ensure constant changes and no "big" bottlenecks coming up after a meet with sponsors.

Individual Reflection

Jian Wei

First of all, let me describe how we took the project up. It was after mid-term last semester when we had to look at the IS480 wiki for projects. At first, we were quite fazed by the choices we have. Some of us are evaluating the depth and the others for how technologically interesting it can be. We then came across B1G1’s post on wiki and were very intrigued by how it works. We went on to talk with Maxco who were in the middle of their FYP with B1G1 and they had nothing but praises for them. Someone came then spurred out the the ethos of “Since we are doing the project for free, the most deserving organization should be one that is also one that is helping others too!”. Since then, we never looked back.

That being said, my team has the most interesting combination I can ask for. It was the most “open” group I had in all my polytechnic and university life. We always had debates about everything, from real issues like coding standards, platform we are coding on to even mundane geeky details like which OS is superior. However, diverging views is never an issue and in one way or another, we respect each and one’s view having coming from different experiences – cliché but true. Having everyone as a unique individual, each bringing different skills to the table and as a PM, nothing is more satisfying to see the results of having responsible group members each accomplishing their tasks and looking on as the whole project falling into place even with rough times in between.

Our sponsors turned out to be larger than life, even after all the praises heaped on them. I still remember the first meeting we had in the early weeks of November last year, when they assured us your “big” 6 members team is going to supplemented by even 2 more members , our client themselves - Masami and Paul. That was never an overstatement. Right from inception of the project concept to the UAT and presentation, they have been sticking together with us, guiding and giving us various advices in every single way we might have problem with.

Myself, as I believe the team as well, as grown tremendously in competency as well as mentally during these trying months. It was nevertheless a fun journey and recalling those hilarious moments still bring a smile even while I am writing this and cramming for exams. Lastly, nothing can describe how I feel proud being a part of the team in developing a system that will benefit hundreds and thousands after its eventual launch.

Chin Hong

The biggest takeaway for this project for me is time management. In this semester, I took 5 modules and for 2 of the modules, EI is a pre-requisite module for EWS. The last few weeks of the semester were really hard as I had to work round the clock and slept very little. Thus, I have to manage my time such that I will rest enough for my brain to function properly and I will have enough time to finish my work and studying for my exams.

Secondly, I learned about conflict management. Although I feel that our team dynamics is quite good, conflicts are bound to occur and this FYP experience taught me more about conflict management. During crunch time, members in the team might be on a shorter fuse and I learned to be more sensitive to my team members.

Thirdly, I learned about the importance of communication with stakeholders. During the first 8 weeks, we didn’t connect with the sponsor enough and we had to have a session to align both the sponsor’s and our expectations immediately after the mid-term review. After the mid-term review, our team takes a more proactive approach to communicate with our client and things moved faster and clearer.

Sandy

I was mainly responsible for the integration Facebook features such as Single Sign-on and Wall Post Sharing, with Buy1Give1 Giving Central. The module I was responsible for in a way marks the starting point of most use cases we have. Features such as pledges and contribution summary, are based on the user details inserted when a new user registers. Therefore, there are quite a few situations where I have to modify the back end database processing for logging in to accommodate the seamless transition for one module to another. Collaboration was brought into the spotlight and was essential to the success of this project.

Though our project team was self-formed and all the group members have known each other for quite some times, we had some miscommunications issues. I have also realized myself that sometimes, I tend to get carried away by the problems I had outside FYP and bring those problems to fyp meetings. Such occurrences might impose a negative atmosphere among the team and cause unnecessary problems. Moreover, even best friends get into arguments and fall out with each other. The important thing is to be straightforward with each other and clarify the doubts. Good friends, teammates are not to be taken for granted.

Xiaoyue

I have experienced a dynamic team work during this final year project. Everyone is excited about learning something new and works on assigned task diligently. I feel that the major difficulty which I encountered during the development phase is trying to understand and customize the codes of various libraries(i.e. qTip, JCarousel) based on JQuery.

I also appreciate meeting with our supportive clients as they contributed so many ideas in interface and functionalities. I have learnt to inform our clients any detailed doubts as there would be more and more details that need to be clarify along programming. The greatest takeaway during liaison with clients is to balance their expectation with our team’s feasibility within limited time. As a result, I learnt to set priority to finish major functions first.

We have really left a lot of work to be done after midterm. I am amazed at the progress in the second half semester due to improved project management / process and dedicated work of our teammates. The major improvement of project management is assigning interface part to a fixed team and back ended part to another team. I found it really useful and efficient to tapping on each member’s strength and we don’t need to go through a long learning curve to learn everything.

Shank

This was by far the busiest semester of my SMU life. Lesson learnt. Never take 4 IS modules in one semester. Especially when one of the modules is FYP. Yet, looking back, it is the most rewarding one by far. Having the same team for all of the 4 projects ensured that we knew each other's working style and habits and this led to much more work getting done instead of pointless discussions over what is the right approach. Of course, our team's friendliness also meant that much of our time was spent "bonding", to the point of wasting time! Some 6 hour meetings involved 5 hours of eating and "talking cock". At the end of every such meeting, we realized that we had to stop such situations from happening again, but alas, our friendship got in the way. Yet, we somehow managed to circumvent such a fatal flaw by determination and more importantly, the strict direction of our team leader and project manager, Mr. Tan Jian Wei.

Time management was necessary given the dire situation we were in. Countless of sleepless nights were put into all the different projects and it seemed like eternity before the end of the semester. This meant that we had to make sure the team was on the right page at every part of the project. Updates on the teams progression and new requirements had to be broadcast to the team to ensure that everyone's resources were being utilized effectively. This only worked as our team was a proactive group, and this led to efficient task allocation without any grousing.

Another one of our groups strengths was that we were a highly rational group of people. All our decisions were astoundingly sound and this undoubtedly led the the creation of our final product. We knew when it was time to argue and this led to rock-solid proposals and sound decisions of which the counter arguments have been exhausted. At the same time, if there wasn't a case against a proposal or suggestion, we all agreed and carried our the necessary actions swiftly. This saved us time on unnecessary dissent and was part of the reason why our project could have progressed at such a rapid pace even after the mid-terms.

Finally, all this wouldn't have come to fruition if not for the constant support from Masami and Paul from B1G1. I realised that the complete co-operation of clients and service providers is necessary for a great project to materialize. Constant communication and iterative feedback has to be present so that both parties do not waste time trying to second guess each other.

It was an eye opening experience for me, and this will always be a benchmark for all future projects to come.

Pei En

There were both technical and non-technical take away from the FYP journey. In terms of technical aspects, I have definitely gained more experience in programming in a different language. As we are coding in a non-OO manner, I have learnt the importance of having a common framework within the team so that we can better understand each others’ codes and have a smoother integration process. Through the frequent communication with the previous B1G1 team that built the current database, I have experienced the importance of documenting down one’s work in every project. By reading the documentation of the tables, it is much easier to understand the purpose of each attribute of a table, and how the different tables are related. In this way, the next team the works with B1G1 would better and easier grasp the relations between all the tables.

Besides technical skills, I have learnt the importance of work allocation in a team. In order to maximize the amount and quality of the work that can be done in a limited amount of time, it is importance that we tap on one another’s expertise and get the most things done in the shortest amount of time. This would be much more efficient work allocation as compared to ensuring people works on an equal share of everything.

Though the FYP journey, I have also learnt the importance of communication between the team, and with other stakeholders of the project. It is very important to set a common expectation for the project right from the start, and ensure that everyone is on the same page at any one time. I have witnessed how different team members are able to interpret a different workflow from the same story board, and realized at the end of the day that none of us are right. Although the team has came up with a framework to code, it is crucial that we communicate and clarify how the server-side and client-side are going to interact, and what objects are passed, in order to prevent anyone from having to modify their codes later on to cater to the other party. This would greatly improve our efficiency and allow us to have more buffer time in case of any major hiccups at the later period.

Overall, it has been a wonderful experience to be able to work with a bigger group of people on a much larger scale and meaningful project that will go live. Of course, all these would not be possible without our very supportive sponsors.

“B1G1 – Changing the world one transaction at a time”