Background
This summer, we had a few projects with separate clients. The main client was Care Corner Counselling Centre (CCCC), while the secondary projects were for Fei Yue Community Services (FYCS) and Lions Befrienders Service Association (LBSA).
Care Corner Counselling Centre (CCCC), formerly named Care Corner Mandarin Counselling Centre (CCMCC) and even earlier as 800 Counselling Centre, began its operations in 1985 providing telephone counselling services. Since then, the centre has evolved into a professional and integrative social service network providing counselling, friendship and advice to individuals and families in need.
The core services provided by the centre include Psychotherapy and Counselling, and Hotline Counselling which are supported by a team of professional and experienced practitioners. Aside from counselling, the Centre also conducts family life education programmes to promote personal growth, family integration and stronger interpersonal relationships. The centre also provides training and consultation for students who are pursuing an education in counselling, or to organisations looking to enhance the effectiveness of their clinical work. Lastly, CCCC also offers personality tests and assessments for individuals seeking to learn more about themselves.
Fei Yue Community Services is a not-for-profit Voluntary Welfare Organisation (VWO). Its main role is to run Family Service Centres (FSCs) to manage counselling services, provide family life education and develop children and youth programmes in the community. Over time, the responsibilities of the FSC grew and FYCS now also manages Student Care Centres, Neighbourhood Links, Senior Activity Centres and more. As such, there are numerous different divisions under Fei Yue Community Services.
Lions Befrienders Service Association (LBSA) is a Voluntary Welfare Organisation which was founded in 1995 by the Lions Clubs of Singapore and a Lions District Project. LBSA is a registered member of the National Council of Social Service. Their vision is to keep Singapore “a nation where every senior is active, healthy and happy”.
LBSA’s operation is split into 3 main sectors: Befriending, Seniors’ Activity Centres (SACs) and Cluster Support. Our current system handles the operations of Befriending and SACs, with a future plan to extend the support to Cluster Support as well.
LBSA Befriending program reaches out to seniors who are at risk of social isolation. Trained befrienders (volunteers) provide social and psycho-emotional support to befriendees (seniors) through weekly home visits. Seniors aged 65 years old and above with limited or no family support are eligible for the service at no charge. The aim is to help them age in place within the community and alleviate them from loneliness and social isolation.
LBSA SACs’ goal is to improve senior citizens’ quality of life, especially those with financial difficulty. The centres conduct activities and programmes that help seniors in certain neighbourhoods to be physically and mentally alert, and keep them involved with the community.
Projects’ Objectives
Since the previous summer of 2015, CCCC had been using the system developed by CVWO to manage their counselling cases, clients, and staff as well as generate reports. Having used the system for a year, the staff had come up with a list of suggested enhancements to existing functionality, requests for new functionality, as well as pain points that they felt could be improved upon to greatly streamline their workflow.
In addition, it was time to migrate FYCS over to a Ruby on Rails system for their case management system as the old one was no longer being actively maintained. The team was tasked to deploy a similar but customised instance of the same system being used by CCCC, for the use of FYCS.
Lastly, the team was to build a mobile web application that would provide the interface for volunteers from LBSA to key in the data for their home visits to the elderly. The mobile application was to maintain the functionality of the outdated and buggy version currently being used, as well as provide additional requested features. In addition, it was to be built to talk to the main LBSA web application concurrently being built by the other CVWO team, led by Le Ba Hieu Giang.
We had several goals for these projects:
Discover and solve the underlying problems for CCCC: We wished to identify the root issues that were behind each of the requests put forth by the staff so that we would be able to fix those instead of just patching the symptoms. This would pave the way for a stable system that the staff would be able to smoothly use for years to come.
Preserve the existing functionality and stability of the existing CCCC system: While some of the proposed changes were minor, many involved significant changes to the codebase of the system, which could result in previously working functionalities failing.
Improve upon the projects’ maintainability: In the first year the CCCC system was developed, the greatest emphasis was on the usability and stability of the system for the clients. While that is also the case this year, we decided to spend more time focusing on the maintainability of the code to make it easier for future teams and developers to take over. In addition, the mobile web application built for LBSA needed to be built in a maintainable and extensible manner for the sake of future teams, as there are plans to extend its functionality.
Prepare the CCCC system to be usable in a separate configuration: As FYCS needed a slight variation of the system, it was decided that the system would be modified to be able to accommodate the requirements of both organizations, and that it should be made simple to toggle between the two configurations.
Minimise disruption for FYCS: As we were going to move FYCS from their old Drupal system to the new system, it was important to ensure that their workflow was not significantly disrupted during the transition and that the new system would fulfil all their requirements.
Project Process
Requirement study
Having received a list of requested features and enhancements from the CCCC staff, the team formulated an idea of the requirements for each of these requests and then held a meeting with the CCCC staff to bridge any gaps in understanding and ensure that work would be done on the correct things. Each item was discussed in turn, with the team finding out the underlying needs behind each request. In this way, we were able to suggest alternative solutions that could better serve their use cases.
Development
There were two main parts to the development process for the Case Management System (CMS) being used by CCCC, namely, the addition of enhancements for CCCC as well as the preparation of the system to be used by FYCS.
Each module in the CMS was assigned to a team member, who would be responsible for the implementation of the enhancements to that module requested by CCC as well as handling any bugs that surfaced. At the same time, they would also be responsible for those modules in the FYCS version of the system, and thus were required to gain an understanding of the differences in the modules between the two systems and ensure that the FYCS version would provide the correct functionality.
In order to ensure that the updated CMS would be able to support both FYCS and CCCC, the database schema was studied and modified in order to accommodate the requirements of both organisations.
Lastly and very importantly, the database migration script for the migration of the FYCS data from the old Drupal CMS to the new Ruby on Rails CMS needed to be completed and checked for correctness. This was a difficult task due to the fact that, as mentioned above, the schema was also being modified to accommodate two organisations.
Deployment
As the CCCC CMS was already running live and being in used, the requested enhancements were deployed in several waves spread throughout the summer after being thoroughly tested. This was to ensure that if there were any problems or feedback with the earlier enhancements, there would be time to adjust the schedule to accommodate changes. As of August 2016, the enhancements were all deployed and the system has been stable.
Near the end of the summer, the development of the system as well as data migration for the FYCS configuration was completed. The new system was deployed with the migrated data, and has been running without any issues.
As for the mobile web application, a live version of the system is running on LBSA’s server for testing purposes. However, some functionality is still not tested as the required dependencies from the main web application are still undergoing development. Tentatively, the mobile application will be launched along with the main system in December 2016.
Screenshots
Project Team
- Tham Zheng Yi (Project Lead, Year 3)
- Huang Feixue (Developer, Year 2)
- Nguyen Tuong Van (Developer, Year 2)
- Rachael Sim (Developer, Year 2)
- Derek Nam (Developer, Year 1)
- Louie Tan Yi Jie (Developer, Year 1)
- Vu Duc Nam (Developer, Year 1)
- Tan Zheng Wei (Developer, Year 0)
Afterthoughts
It has been a privilege and an inspiration to lead my team of talented and motivated developers this summer. Having the opportunity to lead a team of 8 people in dealing with a real world software engineering project while being in school is something that I believe CVWO is unique in providing. While stressful at times, knowing that I was able to contribute to the well being of the client VWOs as well as the improvement of my team is truly rewarding.
– Tham Zheng Yi
CVWO taught me things that goes beyond the syllabus and engaged me in a real world situation where what I code actually makes a difference to the lives of people in need. The three months of experience was also a perfect continuation of lessons I have learnt from a level 2 software engineering module, where I can work on hands-on projects and communicate with clients. I am also extremely grateful for the opportunity to work with a group of exceptionally talented and bright peers, who have provided invaluable guidance and tutelage to me.
– Huang Feixue
Working with CVWO boosted my confidence in software engineering at the most remarkable speed I have ever achieved in the School of Computing. The steep learning curve coupled with the structured working environment and guidance helped me improve steadily and increased my awareness of work standards close to industry levels. Furthermore, I am more comfortable working in a team now thanks to the skills I acquired and the fruitful interactions I had with my teammates. On top of that, CVWO is exceptional because of its humanitarian purpose - to help Voluntary Welfare Organizations in Singapore manage their operations better. I would encourage students in and outside SoC to join CVWO for a meaningful summer because, what is better than doing what you are passionate about while at the same time helping to improve the lives of other people?
– Nguyen Tuong Van
CVWO was a memorable and fulfilling learning experience. We interacted with clients and our work can help the VWOs to improve the lives of people in need. I am grateful to be part of this talented and helpful team.
– Rachael Sim
The CVWO journey was such a great experience. I appreciate the opportunity to be working on such a meaningful project for Care Corner Counselling Center with my teammates. I don’t think I could have spent my summer any better.
– Derek Nam
I am very grateful to have been given the opportunity to pick up practical skills while working on production level code, which goes towards a good cause. The journey has been tough, but rewarding. In this short span of three months, CVWO has taught me more than what a level two software engineering module could.
– Louie Tan
CVWO was the first time that I worked in a professional manner. Not only did I learn the code itself but I have also become more methodological and responsible in my approaches. It was a summer well spent.
– Vu Duc Nam
CVWO has been an extremely eye-opening experience into the field of software engineering. It has taught me that there is much more to real life applications of software that just the code itself. Working as a team not only allowed me to deepen my understanding of the team dynamics in software engineering, it also created a platform that allowed us to learn from others through discussions. Though it was tough, it was definitely extremely rewarding and worthwhile.
– Tan Zheng Wei
We would like to express our heartfelt gratitude to the following people who have been influential and supportive during our project:
- Dr Ben Leong (NUS) for his patient guidance.
- The Care Corner Counselling staff for taking the time to meet and explain their issues with us, especially Admin Executive Lydia Kwah and Centre Manager Jonathan Siew.
- The Fei Yue Community Services staff for meeting with us and cooperating to help us port over their old system to the new one.
- The Lions Befrienders staff and befrienders for taking the time to give their feedback regarding the features and development of the new mobile app.