HeaderSIS.jpg

2012T1 Team Verendus Final Wiki

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

Project Progress Summary

View our 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 UI 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 may be unwanted gap. Therefore, the solution we adopted is to find the “best-fit” alignment for the UI. We decided to cater more towards the mobile devices. While there are slight alignment issues when viewed on computers, they are not very significant.

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 existing request made to retrieve the results.

    We had also faced difficulties integrating new and existing functions together for this feature. Some of the existing functions are pages and supporting of project (using AJAX). 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 test the full screen map after making some minor changes to layout of the full screen map. We usually test on a smartphone and a laptop. After making sure that there are no alignment issues on the smartphone and laptop, we will test it on more mobile devices to ensure that it will work 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. The small map has already made multiple requests to Google Map so as to display 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 and the location of the B1G1 business members.

Framework

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.

Structure of our web application
  • 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 right 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 above 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 3 User Testing, we sums up to a total of 100 Participants throughout the 3 testing session.
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 of 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 can see 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 What we learnt from IS480
Better management of changes and schedules
  • 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.
Manage changes and client's Expectation
  • 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.
Well equipped with PHP language
  • 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.
Proficient with PHP Language, jQuery & AJAX skills
  • 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.
Understand how a real-business IT scenario would be
  • 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.
Experienced real-life business-IT situation and apply suitable solutions
  • 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

I truly enjoyed my experience throughout this FYP because not only have i learnt to apply the skills which i have learnt from previous modules such as SE and OOAD in real life scenario, i have also forge great teamwork and friendship within in team. Being the project manager, i got the chance to experience liasing between supervisor and the client, which has improved my communication skills tremendously. In addition, i also learnt how to better manage a team and improve on my time management skills.

The most meaningful thing about the whole project was to be able to see how our application, B1G1 Connect, is able to help the client to encourage more people to give for a good cause. Knowing the impact that our application might and will create gives me a great sense of satisfaction as we as a team, are able to create an application for a good cause and we do hope that this application can help B1G1 to greater expand their network to reach out to more people who would give for the good causes. Being able to learn and help others at the same time truly provides me with an enriching experience.

All these, would not have been possible without my wonderful teammates, client and the supervisor. I'm gladful to them for all the experiences which i have garnered in the journey of IS480. This module might have taken up quite a lot of time, but it is a useful course which would bring wonderful experiences and skills for your future.

Chang Kiat

As the Lead Developer of the team, I have the opportunity to improve my technical, time management and communication skills. I have a lot of opportunities to learn how to utilize various programming languages effectively such as PHP and jQuery (Javascript). Through constant communication with the client in regards to the scope of the project, I have learnt to judge the amount of time needed to complete the respective components of the project, by taking into account the personal schedule of each team member. The skills, which I have improved through this project, most notably the communication and time management skills, will definitely be useful in the future when I enter the workforce.

As our IS480 Project is coming to an end, I feel that what my team did was very meaningful. We strongly believe that we are helping the less fortunate people around the world indirectly by making the giving process of B1G1 easier. The business members of B1G1 can make contributions in a more convenient manner through their smartphones and computers. This can in turn help more of the less fortunate people around the world.

Everyone in my team was very enthusiastic and motivated as we are doing this project for a worthy cause. Throughout the project, due to the fact that we are willing to sacrifice our free time and helped each other to tide through the difficult times, we have built a strong relationship with each other thus far. I feel very fortunate to be able to embark on this project together with my team members.

Pei Wen

Wow, it has been more than 8 months ever since my team and I embarked on this final year project! Speaking from the bottom of my heart, it has definitely been a journey worthwhile and certainly one which I will remember. First and foremost, I will like to express my gratitude to my teammates. B1G1 Connect is a success today because of each and every one of you.

One of the key points about this FYP journey is that it challenged me intellectually. I recall being a little afraid that I could not cope well as I was unfamiliar with PHP language (I only managed to learn bits and pieces of PHP language back in polytechnic). However, I was able to overcome this due to many reasons, the first of which being the skills and knowledge taught to me in SIS. For instance, the object-oriented programming concept has further aid me on how to set up an efficient framework for this project. And of course, it was truly the bonds we shared that encouraged and motivated me to do the best I can for this team. This motivation pushed me further to take up new skills like jQuery and AJAX to further enhance the aesthetic appearances of our project.

IS480 project has allowed me to put myself in a real business-IT situation and apply the project management skills and technical skills we learnt in school. As our project progressed, I have definitely sharpened my collaboration skills and communication skills with the team and our stakeholders. I now understand the need to communicate effectively to ensure everyone is on the same page. Being part of this self-managed team has also strengthened my communication and interpersonal skills. I believe all these skills will aid me in the future when I step into the workforce.

To me, effective teamwork does not occur automatically. I am really fortunate to be part of this team that is self-motivated and always willing to take that extra mile to ensure this project a success. I recall how we were able to envision innovative ideas for our project, and the perseverance we had to solve the problems we faced, especially during the integration of our project with B1G1’s live server. I remember the few overnights we spent over in school to help each other in areas we faced difficulties with. The lack of sleep we faced has paid off!

Lastly, I will like to express my gratitude to my supervisor and client, Professor Gao and Ms. Masami Sato respectively. The invaluable advice and ideas that they have provided our team has truly aided us in the success of this project.

Zac

It is of mixed feelings that am writing this reflection, fond and emotional memories since we embarked on the final year project journey. I am really fortunate to be part of this awesomely hardworking team that are self driven and motivated.

There are few takeaways during the journey, that as a IS student, i am proud to share with you. Our ability to work under stress and extreme conditions producing quality results and strategic decisions is clearly demonstrated in the journey. The times that we spent overnight resolving bugs, the time we spend our public holidays in school discussing on the project or the simple meals we had together after our long meeting; we work as hard as we play.

In addition, a important skill that was sharpen was communication skill, managing the client's expectations and balancing the project requirement was never a easy task. Through communications, we understand the client's concern and priorities but we need to fulfill the project requirement at the same time. Our constant and actively communications with our supervisor has also help us to keep our supervisor updated on our progress of our development.

Also, I am happy that we have chosen a very supportive client, who provided us with a real business IS development environment experience. Even though the technology and monetary constraints was one of the key challenges, our team was able to complete the challenging requirement in the situated time through our passion and determination for the project.

Lastly, I would like to express my appreciation to our client, Ms Masami Sato, supervisor, Prof, Gao Debin, my team and our friends for their constant support, suggestions and active participations to make our project a success story.

Mardiana

As we come to the end of this project, we have learnt far beyond what is taught in the classrooms. It’s not just a matter of enhancing our skills; we definitely have improved our programming and communication skills on the whole. All in all, I’m simply amazed by how an innovation such as our application, B1G1 Connect, can be used as a tool for social change. It has been a humbling experience. It has helped us to see the bigger picture, in relation to our lives and the rest of the world. We have too much to do to sit in the sidelines – and we can do something to help others. Through this project, we have learnt to step out from our comfort zone, and learnt to persevere. We have learnt to manage our individual tasks and deliver them on time. We have learnt to adapt to changes in a time crunch. Frankly, there are simply too many takeaways that words fail to describe. But, most importantly, what I have learnt is that it is certainly within our best of capabilities to change lives.

Masami comments.jpg