IS480 Team wiki: 2010T2 Let’s Give!
|Founded||Singapore Management University, Dec 2010|
|Project||Design Your Life|
|Team members||CHAN Chin Hong|
|LAU Pei En|
|LAU Sheng Shiun|
|TAN Jian Wei|
|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.
- 1 Introduction
- 2 Project
- 2.1 Overview
- 2.2 Management
- 2.2.1 Workplan**
- 2.2.2 Milestones
- 2.2.3 Metrics
- 2.2.4 Weekly Action Plan
- 2.2.5 Iteration Action Plan
- 2.2.6 Final Schedule Metric Chart
- 2.2.7 Final Bugs Metric Chart
- 2.2.8 Risks and Mitigation Strategy
- 2.2.9 Minutes
- 2.3 Suite of Applications
- 3 Execution
- 4 Resources
- 5 Learning Outcomes**
- 5.1 Challenges
- 5.2 Individual Reflection
- 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
- Lau Sheng Shiun, Shank - Assistant Project Manager
- Updates Wiki and meeting minutes
- Back End Developer
- 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
Previous FYP teams that worked with B1G1
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.
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.
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.
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.
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
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
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
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
The current impact you have made for the worldwide community
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”
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.
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.
A giving tracker that let you state a giving goal and track how much have you worked towards it.
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).
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.
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
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
Version 1 - Story Board
Archived in PowerPoint format here
Use Case Diagram
- 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
To facilitate effective project management, 2 metrics are used.
- 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 - 1.5||
Iteration Action Plan
|SEI||Action to be taken|
|0.7 - 1.3||
Final Schedule Metric Chart
- 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
|5 - Severe||
|3 - Normal||
|1 - Minor||
|IBS||Action to be taken|
Final Bugs Metric Chart
Risks and Mitigation Strategy
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
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.
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.
The system is deployed at: Link to client site deployment
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
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 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.
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.
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.
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.
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.
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.
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”