IS480 Team wiki: 2010T1 Groupers/final wiki

From IS480
Jump to navigation Jump to search

Project Progress Summary

We have completed the project, despite the delays faced in earlier iterations. After the mid terms, we have been developing Fund Management, Archiving and Notification, as seen in our Schedule.

As we were able to finish these functions according to the allocated time, we used the buffer time during this period to revamp the user interface. Our client was able to start using the system to populate the database since iteration 7, giving regular feedbacks, which we used to make changes to the system, indicated in the Change in requirements tracker.

In iteration 8, we found many bugs that were not discovered in the previous iterations. These bugs are either validation or spelling errors that do not impact the functions greatly. Due to time constraints, the team can only eliminate these bugs to ensure that the system can handle common scenarios well.

Our team has been deploying the system to the TEF server since iteration 5, with its final deployment at the end of iteration 8. Another round of User Acceptance Test (UAT) was also conducted at UWCSEA to ensure that all functionalities fulfill our client’s requirements, and we have attained a 100% pass for all functionalities. We have also engaged our stakeholders in Banda Aceh through Skype to brief and train them on using the system, with the help of Pat.

Understanding that there may still be undiscovered bugs in the system, the team will continue to support the system throughout the remaining period of the project, and serve as technical advisors should issues occur.

Project Highlights

  • Unexpected Events - Reporting

We realized that our system’s reporting function could not support our client’s requirement to see the periods where there was no funding. Our client neither has an existing reporting tool nor a proper reporting process. Thus this was overlooked during our requirements gathering phase in iteration 1, and articulated in iteration 5. Thus, we set off to make some adjustments to our database design and as well as our code in order to meet this requirement in iteration 6.

Project Challenges

These are the prominent challenges faced during our project. Please refer to Project Complexity for more details

  • Ensuring a fully functional working system

This is the second time our client has approached SIS to develop the system. Thus we are presented with the challenge to ensure a fully functional system that meets their requirements.

  • Reporting

There was a need to simulate data warehouse elements such as drilling down data. Moreover, there was a need to report past and present data. Thus we need to update and track each student’s profile each month by scheduling CRON jobs to insert these data into database every month.

  • Clear representation of data and user interface design

A lot of time was spent on designing and thinking how to present the user interface and data in a simple, organized and intuitive manner. There is no definitive guide on design and we sought out good web design practices online and incorporate them into the system.

Project Achievements

  • Client has been using the system to populate data since mid term

This was possible by developing the system in short iterations. We also used programming frameworks such as Codeigniter and Jquery to build our system fast enough so as to ensure regular meetings to verify that the system indeed supports them in their business processes.

  • Intuitive User Interface

Our user interface has won praises from our client who complemented on the professional-looking and neat design. Their sentiments was shared among those who tested our system during UAT in both mid terms and finals, and as well as the judge from the Lien Foundation

  • Achieved 90% bug free objective

We met our 90% bug free objective by testing the system regressively after each iteration, and monitor them using our own bug metrics.

Project Management

Project Scope

Overview of TEF DMS

The project scope consists of:

Scope Description Access Rights for Super Admin/Admin Access Rights for Helper
Member Management Allows TEF members to manage members on the system. CRUD R
Student Management- Allows TEF members to manage students records. CRUD CRU
Guardian Management Allows TEF members to manage guardian records. CRUD CRU
School Management Allow TEF members to manage school records in Banda Aceh. CRUD CRU
Photo Management Allow TEF members to upload photos of schools, and student, to set their default profile photo, and to delete photos. CRUD CRUD
Upload File Allows TEF members to upload CSV of the school and update the student and guardian records in the database.
Notification This feature notifies Pat, Jumiah and other appropriate admin(s) when student funding’s transaction status are updated. -
Fund Management Fund management supports the funding process by allowing finance admin(s) to update students’ bank account transactions status, export monthly instructions and ensure students receive their funds. -
Archiving TEF needs to keep a record of all past student information. Students who have graduated from High school or dropped out will be archived. Archiving will take place once a month. Alternatively, TEF members can choose to archive manually. -
Notification This feature notifies Pat, Jumiah and other appropriate admin(s) when student funding’s transaction status are updated. -
Reporting This function allows TEF members to view funding trends in chart format, funding trail in table format, and exporting of reports in both tabes and charts. -
Export Data It allows easy reference of the information extracted from the system.
Data Cleaning The collection of data are in different formats from different schools, thus there is a need for data cleaning and standardization of data formats for a single common repository. - -

Site map

The site map below shows how all the functions are linked together in the system:

Site Map

Project Schedule (Plan Vs Actual):

Groupers finalschedule 19nov.png
  • Each iteration ends with the completion of user Interface, development, testing and debugging for each functions
  • The built function in each iteration will be deployed to the production server at UWC.
  • Download our Gantt Chart
  • Schedule summary and gantt chart updated as of 23 Nov 2010

Project Weekly Updates

As we set aside sufficient amount of buffer time for the iterations, we managed to complete all the functions after mid term. We will update our Weekly Progresson wiki once in a week. Apart from that, we draft Meeting Minutesfor each meeting to ensure that all members, clients or supervisors are kept in the loop.

Project Risks and Mitigation Plan

We identified Five Risks for our project initially. Among them, one was mitigated during mid term. At the end of iteration 8, we managed to mitigate all of them. The remaining four risks includes:

Risks type Risks Factor Mitigation Strategy
Project Management Risks Change of project requirements Whenever clients initiate a change in requirements, we will first discuss within our team and we will then meet our client to clarify and discuss with them on the necessity of the changes.
Project Management Risks Limited time in deployment to UWC server Initially, we do not have access to the UWC server publicly, this hinders our progress as we need to make a trip down to UWC each time we need to deploy our project. We approached the UWC IT personnel, Christopher and thankfully, he is helpful to set up SSH for the team to access the server publicly.
Technical Risks Coding capabilities of members Whenever anyone of us face coding difficulties, we would try to help each other.
Usability Risks System usability Since we are able to access the UWC server publicly, this also means that we can allow the client to use the system early so that we can gather feedback from them.

Project Metrics

Schedule Metrics

The following line graph shows the project schedule trends over the 8 iterations. Initially, we were not familiar with the codeigniter framework and technologies, thus we spent quite some time in learning and adapting to it. Moreover, we were all working full time job during the first 2 iterations, that causes a delay in the first 2 iterations. Subsequently, as we get the hand of it, we start to progress more smoothly and this reduced the project delays dramatically.

1) In terms of functions:


2) In terms of iterations:


Bug Metrics

As we progress, we will do a regression testing for each iteration. E.g. if we are done with member management in iteration 1, we will continue to test it in on iteration 1,2,3 and so on. That explains why the no. of bugs resolved increased overtime as we are testing more functions over the iterations. Red represents unresolved bugs, no. of bugs unresolved decreased gradually, and ultimately to zero. These results were obtained from our Overall Bug Tracker.


Our team believe that no matter how well or how carefully you craft your programming code, every software is bound to have bugs.

For example, an open source software has many versions before they can finally stabilize their build. This may mean there may be more undiscovered bugs found in the future. Given that this is our first attempt developing an industry web application and with our limited time frame, at least we have managed to resolve the bugs in shortest time possible and deliver a build well enough to handle common scenarios.

Metrics Collection Method

To derive the above statistics and charts, we came out with various formulas and methods to measure them.

How is the Schedule metrics collected?
Refer to Schedule Metric

How is the Bug metrics collected?
Refer to Bug Metric

Project Complexity

The team has faced both management and technical complexities during the project and are as follows:

Management Complexity

  • Managing unclear user requirements

Even though our client has provided some of their data includes powerpoint slides detailing the data collection and fund approval process, we realize certain details in the requirements were unclear and might have the potential to impede our progress.

  • Ensure delivery of a fully functional working system

This is the second time our client has approached SIS to develop the system. Thus we are presented with the challenge to ensure a fully functional system that meets their requirements.


Our strategies to handle these challenges is to develop the project in shorter iterations so that we can show the prototype to the client to verify that the system truly meets their requirements. To handle unclear requirement details, we always contact the client and discuss with them when in doubt. We also anticipate unforeseen scenarios that may occur when using the system and discuss with the client to reach an agreement on how to handle them.

Technical Complexity

  • Frameworks

We use popular open source frameworks such as Codeigniter, 960 Grid System, JQuery and other javascript libraries. These frameworks may be well-documented and has wide support online, but they may not be supported by web browsers.


We found ourselves falling back on traditional ways to code which are sometimes long and tedious.

  • Search

We did a simple search function for each of the management function at first using Jquery and Ajax. This made it difficult to handle change requirements involving the search function and made our codes difficult to manage. Moreover, we realise the search function was too simple and does not have the ability to support advance search functions like sorting and filtering.


We created a custom library file in Codeigniter based on the Object-Oriented programming methodology of extension of classes. This library handles all the common attributes shared between each management function such as pagination, session and filter controls, which made our code easier to manage as we do not need to rewrite and repeat these controls.

  • Reporting

Our client needs to view reports that shows past and present data over time. These data are in large amounts due to accumulation over time and therefore need data warehouse elements such as drill down to break them down and present them in a meaningful manner. Reporting in large companies is often associated with Data Warehouse which is used for reporting and data mining. Clearly, our client does not need and could not afford a Data Ware house.


We simulated a data warehouse by implementing a CRON job to update and track each student’s profile status each month. Then we join all the necessary tables together in order to produce the right query to retrieve the results that our client needs. These queries proved to be a major challenge as we need to join many tables have to make it flexible enough to filter results base on time, summarize or show more details base on the user input.

Quality of product

Project Deliverables

Stage Specification Modules
Project Management Meeting Minutes Meeting Minutes
Metrics Project Metrics
Risks & Mitigation Risks and Mitigation Plan
Gantt Chart Gantt Chart
Change Tracker Change in requirements tracker
Requirements Project Scope Description Project Scope Description
Analysis Use case Use cases
Business Process Diagram As-Is Process
To-Be Process
Screen Shots Screenshots
Design ER Diagram ER Diagrams
Testing Test Cases Test Cases
UAT Test Cases UAT Test Cases and Results
Bug tracker Overall Bug Tracker
Handover Manuals User Manual
Setup Manual
Code IS480 SVN
Deployment Diagram Deployment Diagram
Network Diagram Network Diagram


  • User Interface

We have been constantly improving our User Interface not only to cater to changing requirements, but also to enhance user experience. We believed not only does a poorly designed user interface affects the look and feel, it also frustrates the user, steepens the learning curve of the ultimately affecting its usability. This has been the main reason why we keep revamping our user interface. In this way, when TEF recruits new members, they can pick up using our DMS easily.

Thus, we have been constantly improving the user interface by introducing more logos and colors for each function to guide the user and as well as readjusting the spaces to make the content more readable and less clutter.

  • Model View Controller (MVC) Approach to programming

We adopted MVC approach to organize our codes. The reason why we use this approach is because it allows us to develop the DMS in a modularized manner. Using controllers to connect views and models, Model to interact with database and View to display results has not only organized our codes but also makes our debugging more straight forward, and changes easier to implement as codes are easier to maintain.

  • 3rd Normalized Form (3NF) for all Database tables

Having normalized table enhances users' search experience as it makes searching faster and more efficient. The trade off is that it could hinder some of our retrieval process for reporting as we have to join many tables in order to get our desired results.

  • User Manual

We drafted out a comprehensive user manual that gives a tutorial of all the functions of our system.


Login Details

Public URL: http://tef.uwcsea.edu.sg

Access to the site will be given on a case-by-case basis. Please email Grouper members for login details. Email addresses can be found here

The following is a network diagram showing how our Banda Aceh and Singaporean stakeholders are connecting to the system. The server is currently residing in UWCSEA's campus.

Network diagram v1.jpg

This is a deployment diagram showing the software we used and how they are deployed.

Deployment Diagram


Date of UAT and Tester Profile

What? When? Who?
Midterm UAT 20th Sep 2010 6 members from Team GURU
Midterm UAT 24th Sep 2010 3 Clients
3 UWC Scholars
1 External user
Final UAT 13th Nov 2010 6 Internal Members
Final UAT 16th Nov 2010 3 Clients

2 UAT sessions (Before midterm and final) was held over the course of this project. The primary purpose of this is to ensure that no discrepancies arise after our system iis released. The duration of each UAT was about 2 hours, although it was time consuming, but we feel that benefits outweighed it! Besides the above testers, we also asked some of our friends who had no prior knowledge of our project to test. A specific steps were given in the test scenarios and testers were instructed to state results and indicate pass/fail.

A Mid Term UAT Test Case was created for mid term. While for our final UAT test, different test cases was created for different end users. We created Final UAT Test Case for Admin for admins, Final UAT Test Case for Helper for helpers.

Apart from the UAT, our client has given us feedbacks as they do data entry progressively since mid term. These feedbacks was very helpful for us as it allows us and clients to have a common understanding on the system before we progress to the next development phase. Please refer to Full set of UAT Test Results.

Mid Term UAT Results

With team GURU:


With UWC Client:


Final UAT Results

With UWC Client


Team Reflection

Knowledge Base

Please refer to Knowledge_base section.

Project Management Skills

Situation: From iteration 2, we realized that the deadline we set for functions like student and school management is too short. It is only when we started developing the functions that we begin to realize that they were rather heavy and required a longer time to complete.

Lesson Learnt: Working in the team, we have experience the full life cycle of a system from concept, requirements gathering, the choosing of the relevant IT tools, and to the final delivery of a working system. Even though we make some mistakes along the way, but who doesn’t make mistakes? What’s most important is that we know where we gone wrong and learn from them.

We learned to set realistic deadlines and sufficient buffer times for our projects. In order to meet that, each programming pairs will discuss what they plan to do for the next assigned functions and how are they going to approach it. We will also discuss about the amount of time we need to get the assigned functions done. From there, we will guage the manpower needed and amount of buffer time to give.

Situation: Initially, it was hard for the team to coordinate certain tasks such as when to do test case, when to submit meeting minutes, what are the necessary coding rules to follow, and the list goes on.

Lesson Learnt: Each member was assigned a role in the team and would be accountable for his/her position. This reduces discussion time as we can approach the person-in-charge who would be responsible for managing their area of scope.

Code Management

Situation: As each member has different ways of writing codes, this may result in repetitive set of methods or overwriting some methods which was created by other members. This type of situation happens quite often and it causes various issues such as causing some functions not to work correctly due to deployment of other functions.

Lesson Learnt: Lead developer gave feedback to the team and write up a Coding Guideline Manual for rest of the members to follow. From here, the team learnt how to have better management in coding convention. Also, they learnt to follow a standardize way of writing code via Codeigniter’s user manual.

Schedule Management

The team’s supervisor told them that it is normal for IT projects to be constantly changing its schedule. The team felt that they did a decent job in handling these changes to deliver on time despite their under and over estimations.

Effective Communication Skills

Situation: The most difficult, yet the most crucial component was to achieve a common understanding between the team and the clients in the requirements gathered. In weekly meeting with client, there could been some points that we might misunderstood the client requirements or the client might misunderstood our intention.

Lesson Learnt: The team managed to listen and communicate with clients effectively. They usually spent their meeting times discussing the requirements and issues to ensure that they understand what the client wants.

Furthermore, they always learn to summaries or paraphrase the points with the clients during the end of meeting on the action tasks, the progress, or the feedbacks. On top that, we summarized the meeting minutes, action items and sent email to client for verification after each meeting.

As this project is the 2nd time our client approached the school, our client has emphasized this as the key to a successful FYP. Bearing in this in mind, in order not to disappoint our client, our school and ourselves, we set out to be more proactive in communicating, and being assertive. We made communication and requirement gathering a 2 way affair between our team and the client.

Good Team Player

Situation: Even though we know each other since we were freshies, there are still times of conflict and disagreement.

Lesson Learnt: However, having conflicts is not a bad thing. It’s actually a good sign that everyone is equally concerned about the project and its direction. Through these conflicts we learn how to be a better team player by showing tolerance with each other. We also understand each other’s strength and weaknesses, unleashing each of our potential to the fullest. We are glad that we have emerged stronger and become better at being an effective team.

Technical Skills

Learning and implementing technologies such as Jquery, and Codeigniter has expose us to a better and productive way to do programming, we have also become more experienced with PHP.

Despite that it was tough and endearing to learn these frameworks, we were eventually rewarded with the benefits of using a framework in the long run as it makes it easier for us to maintain and implement the system.

Individual Reflection

Individual Contributions

Contribution Liang Weikang Lim Min Yu Ashley Kenneth Yip Han Lihua Kuah Zi Yang Khoo Guofeng
Graphic Design (Poster,Logo)
Wiki Contents
Use Case
Gantt Chart
User Interface
Test cases
UAT Test cases
User Manual
Setup Manual
Access Rights
Member Management
Student Management
School Management
Guardian Management
Import CSV
Export CSV
Export PDF
Photo Management
Fund Management
Dashboard for Home

Han Lihua's Reflection

My key areas of improvement would be technical and schedule management skills. Initially, I was quite afraid that I might not be able to handle the scope of my assigned functions as I am not familiar with the framework. However, after much practicing and researching, I managed to complete the functions together with my pair programmer. Using framework certainly helps in simplifying coding methods. This is certainly one of the greatest acheivement i have for this project.

Furthermore, through various stages of planning and prioritizing of tasks, I learned how to set a more realistic schedule to ensure that we have ample time to handle assigned tasks and to rectify any issues that may cause delay to schedule. Another takeaway would be learning from my group mates. My group mates are helpful people who offer help whenever any member encountered any problems in their work as all of us have a common motivation in mind, that is to help the tsunami stricken orphans.

All in all, I am glad that I chose to do exchange in NTU for this semester as that allows me to spend more time on this project to get things done. My individual contributions to this project includes schedule, documentation and programming.

Kenneth Yip Kean Wei's Reflection

Been in a team of 6 people, Teamwork is definitely a key to the project success! To do a projects within a group requires give and take from one and another. Definitely the route to Week 24 is not an easy journey that can be described by words. There are ups and downs when team mates are exhausted or overwhelmed with work, the times when we should assist or help one and other. As an old saying in chinese, 团结就是力量! As long Groupers are united, we are able to brave through all the stormy nights.

Basically these some of the contributes that includes Team logo, Member management, Photo management, Reporting trails, Exporting csv, User Manual, Slides. There were times when some member are overwhelm with their part and we will try our best to help out every time. Being having short iterations and meeting clients regularly, it always a need to have a consistent time management in the development of the system.

Despite the soft skills, I also picked up PHP code in Codeigniter Framework and good designing principles. To achieve Usability and Simplicity in a Database Management System involves a lot of time spent and consideration before the actual development starts. IT requires not just technical skills but also "being able to articulate" to get what the clients want is an important part in project management. I would to take this chance to thank my FYP mates for the wonderful teamwork spirits!

Khoo Guofeng's Reflection

Working with our client for 6 months, it's really a wondrous experience. However, all things come to an end. From this project, I've learnt a lot of valuable lessons which probably hone me to be a much better person, and will be useful in my career. Some lessons learnt are probably our commitment to the client which we need to manage, the change requests made by client which we need to discuss with them on the impact level, the desire to make things work better and etc. We, as a team, cannot come this far without any teamwork within the team. Each of us really helped one another when one is in need of help. Furthermore, every individual in the team has contributed many valuable ideas and opinions which make the team think ahead. As such, things just get better and better each time. For instance, our user interface, which was created by Ashley initially, was revamped numerous times. However, we believe that there is always room for improvement, and hence, I took the lead in revamping the layout, by adding colors and removing some components, while retaining most of the initial layout. Another example is our search. Due to the complex relationship between guardian, student and school, it is clear that overlapping of information is unavoidable. Initially, the search was designed to work standalone. But, it caused us problems in the later stage of the project as we found it tedious to change and it's more prone to mistakes. Therefore, we decided to re-code the search function which follows the Object Oriented Programming methodology. As a result, our search is extensible and easy to maintain. Nonetheless, I would say that we have achieved the team and client's objectives. Groupers rock!!

Kuah Zi Yang's Reflection

6 months, this is the time spend on our FYP project. The FYP journey has been a challenge and remarkable learning experience for me. The application of skills learnt from modules like Software Engineering and Data Management have certainly helped me in this journey. The most important take away for me is the learning of Good project management, which entails the entire project from gathering client requirements, communicating effectively with clients and team, to the final delivery of the working application.

I have also learned to efficiently control and plan my time as managing the workload between assignments, other school projects and FYP was most crucial. Nevertheless, this challenge has been worthwhile as I want to thank Prof Gan, UWCSEA and my team for making the journey an enjoyable one.

Liang Weikang's Reflection:

This project has put my time management skills to the test, as I have to juggle coding, documentation and doing presentation slides. I could literally feel time crunching down on me especially when presentation deadlines are near. Luckily with the help of my team mates, we manage to pull through and overcome every one of them. It was really motivating to see everyone putting their best foot forward, just by accomplishing their tasks with commitment and zeal. Our creativity was unleashed through the design of presentation slides as everyone chipped in to contribute and create the beautiful graphics and presentation style that best suit our project. There were times when we met challenges like revamping the Search function and User Interface Design. However, there would always be someone who would lead by example by doing some of the foundation work, and that really pushes me to go on and give the best I can. I also learnt much from my team mates in this aspect and learnt to lead by example.

As the Liaison Officer, I have grown much from representing my team as the spokesperson during client meetings, and vice versa, as I explained the client’s requirements to my team. It made me realize how hard requirement gathering can be especially when the process does not have clearly defined details. I learnt that sometimes one has to make logical assumptions based on what you have gathered instead of expecting to gather all requirements from the client. It is only through regular interaction with the client and try-outs that a software project can be adjusted to fully meet the client’s requirements.

Technically, I have gained much from learning the Codeigniter framework, as I used it extensively to develop functions such as Guardian Management, Student Management, Fund Management and Overall reports. With Jquery, writing javascripts is so much easier too. I also learn a lot about charting tools such as HighCharts as we used it to develop the charts in Reporting. HighCharts has very comprehensive support and examples as an open source javascript charting tool and I would certainly recommend others to use it. Most importantly, I’ve learnt how to choose technologies and use them more wisely, thinking about server side and client side considerations.

Lim Min Yu Ashley's Reflection

Managing 4 heavy modules in a semester is no easy task, especially when all the projects’ deadlines are so close to one another. After the numerous nights of midnight oil burnt and weekends sacrificed, I truly apprehend the importance of time management. As cliché as it may sound, time management remains an important yet difficult skill to attain in every project. Moreover, Final Year Project (FYP) is different from our run-of-the-mill modules where we are able to memorise those humdrum theories in just a few days. The time-nibbling FYP has trained me to plan my time better to ensure work-life balance.

The team has been friends since 2007 when we first met as classmates. Due to the strong friendships built over the years, team members’ negative feedbacks may sometimes decline my morale. However, I’ve always reminded myself not to take offence when my ideas/work were rejected or edited and treated them as constructive comments to help me improve.

I had always believed that one would be happy to find a job that coincides with his/her hobbies. However, my designer role in this FYP made me apprehend that hobbies and work should never cross paths especially when it involves creativity. Web/Poster design may be my hobby and forte but it would never be something I would do for a living. Creative ideas do not appear the moment you want them to. The stringent guidelines and tight schedules were hindrance to my creativity. I never liked working under stress; neither do I enjoy designing with constraints. My encounter made me draw the line between work and hobbies.

Knowledge Base Contributions

The following are the team's contributions to the IS480 Knowledge Base.

  1. Making Reports with Mysql and PHP
  2. Javascript Thumbnail Viewer
  3. Javascript charting libraries
  4. Setting up cron jobs on linux

Feedbacks from clients

Feedbacks on Functionalities

Download 01 Oct 2010
Download 20 Oct 2010
Download 07 Nov 2010
Download 12 Nov 2010
Download 14 Nov 2010
Download 15 Nov 2010
Download 17 Nov 2010
Download 21 Nov 2010
Download 21 Nov 2010 (2)

General Feedbacks

Smart, professional interface facilitating input of records. A well designed easy to use interface that enables the TEF team to monitor the progress of the recipients of funding.
- Wayne Fozzard

Groupers has worked steadily and professionally for many months to develop a system that TEF will be using in 2011. Working with Groupers has also helped TEF become better organized in its data management and funding operation. The system that Groupers developed represents a huge step forward for TEF. Working with Groupers has been a very positive experience which has transformed the way TEF is managed.
- Pat Meyer

Team Grouper is very committed in their project work and work well as a team. All ideas and feedback are thought through with great details they are able to implement them and at time improved on them.
- Jumiah Tornroth