YMCA YMCA of Singapore is a Christian voluntary welfare organisation. In general, it covers various areas such as providing student O-level to higher-level private education, managing corporate events, collecting donations, and providing sports and recreation facilities for members. YMCA offers various wholesome programmes to serve and enrich all members of the community. With over hundreds of events organized every year, YMCA attracts more than 3000 registered volunteers - a growing number each year.

The Old System

The increasing number of volunteers once made it very difficult for YMCA staff to manage volunteer data and volunteering activities. It has caused problems such as the inability to gather statistical data, double-counting volunteers who participate in multiple programmes, and the inability for volunteers to keep track of their own contributions. In year 2009, a team of 4 students from CVWO developed the first volunteer management system (VMS) for YMCA. This VMS enabled volunteer online registration and volunteer data management. The public event calendar allowed volunteers to sign up for YMCA’s latest activities easily. However, not all departments used this VMS due to several reasons, including design defects - the system could not support the workflow for some of the departments.

The New System

With six members, my team is tasked with developing a volunteer management system for YMCA. Having thousands of volunteers, the staff at YMCA is often overwhelmed with the volume of communication and amount of data that they need to manage. Our main objective is to save time on administrative task and empower the staff by making information available in a user-friendly web interface.

The system serves both YMCA staff and volunteers. Volunteers, whether individual or group, can register as users, update their profile, sign-up for events, and share about their experience with YMCA through the Facebook app. Staff could manage event registration, volunteer attendance and volunteer assessment in a streamlined workflow. The system also generates management reports that were previously produced manually and inaccurately.

This year, our team’s task included upgrading the legacy system from Drupal 6 to Drupal 7 and building additional features and enhancements specified by the client to support their current operation. Besides enhancing existing volunteer management features, one of our major goals was to improve the usability and flexibility of the system. Moreover, we added the “social factor” into the system by allowing volunteers to connect their account with Facebook to share volunteering activities they participate in YMCA. We hope this “social factor” could encourage more people to become volunteers and join some of the events they are interested in.

Project Development and Accomplishments

This project contains 4 phases: design, development, testing and deployment.

Design phase began with requirement study and code review. On one hand, the team started to review code from previous projects to learn the Drupal framework, which is a reliable coding framework for developing content management systems. On the other hand, we went for YMCA meetings to get basic understanding of their daily operations, discussing about problems with the old system and additional features needed in the new system. After collecting feedbacks, data templates and other information, we started to review the design of the old VMS and came up with a new design based on YMCA’s needs. In this early stage, our team leader Xialin conducted a system requirement study, designed new features and drafted the project development schedule and timeline.

The development phase started from the end of May till early July. During this period, each team member was in charge of a few modules. We began with building the infrastructure and upgrading the existing features from Drupal 6 to Drupal 7, followed by developing new features such as Facebook connect, Membership tracking, Volunteer Assessment etc.

We planned to deploy the first training site in early July, but could not manage to do so because the new server was not ready by the time. Instead, we spent quite a lot of time testing the system and making enhancements accordingly. We helped each other troubleshoot the system and gave feedbacks for further improvement. Meanwhile, we kept seeking updates about the new server from YMCA IT staff.

Surprisingly, the deployment turned out to be the most difficult phase that caused the project to be delayed. We could not deploy the system on the new server until late July. Subsequently, due to configuration and network connection problems, the new system could not be accessed from external users. The problem was resolved after much investigation and help from both seniors and the IT staff from YMCA.

Although we have completed the system implementation, we shall maintain the system in the following year to make sure the system could serve its purpose of improving YMCA’s daily operation.


The Team

  • Han Yu (Year 3)
  • Hang Joni (Graduated)
  • Soon Chun Mun (Year 2)
  • Yang Mansheng (Year 2)
  • Zhang Xialin (Project Lead, Graduated)


It is a real world project, different from school project, building a system for YMCA staff to benefit their work. Their work which is also very meaningful and benefits lots of people was what really attracted me.

– Han Yu

Suffering probably does not feel good. However, solving difficult problems and eventually getting rid of the pain by one’s own abilities will definitely be a satisfying experience! And I believe that’s part of the lesson CVWO has been trying to teach students: learn how to learn.

– Xialin

I believe every student before entering the work-force, like me, would benefit from experimenting different roles and immersing in practical experience.

– Hang Joni

Our small project have added real value to our society and provided meaning in the work we did.

– Chun Mun

I have learnt not only many software engineering practices and development skills but also valuable life skills, which I may not have the opportunity to learn in school, in this project.

– Mansheng

It is not an easy job since people you talk with may know nothing about IT. So we need to translate our technical talk to more common language of understanding.

– Han Yu

The summer made me look at volunteer work in a new light. I have previously done charity work in the form of giving tuition, organizing and participating in events. Though meaningful, I found these activities often wasteful of human resources, paying little attention to individual’s strength and capabilities. CVWO, however, makes use of the comparative advantage of computing students to achieve charitable outcomes.

– Hang Joni

Rather than looking through the lenses of a person preparing for an exam at the end of a 13-week semester, I wonder how these skills can be put directly into application and maybe effect a positive change in our society.

– Chun Mun

Some managers are not quite sure about their requirements until they see our product. So it also required us to judge and weigh our clients’ ideas and provide them with reasonable suggestions before actual implementation.

– Han Yu

This is the first community activity I participated in Singapore. Thanks to the project, I know more about community workers and the current situation of community work in Singapore. In addition, I am really pleased that I could use my skills to help others.

– Mansheng

Do they really need the feature? Is it a technical problem or process problem? Can we solve the problem by introducing IT solutions? How will the feature help improve the workflow? Asking the right questions could help us get a clearer picture and uncover hidden problems. However, asking the right questions requires experience and knowledge.

– Xialin

We would also like to thank the following people:

  • Dr Ben Leong (NUS) for imparting invaluable insight and guidance both in the project and life skills
  • YMCA staff for their co-operation and support throughout the project
  • CVWO seniors who have showered us with generous amounts of technical help