In this project, our client was Lions Befrienders Service Association (LBSA).
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 programmes: Befriending, Senior 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, keeping them involved with the community.
Our overarching goal for Summer 2018 was to stabilize the LBSA system. After spending 2 years rewriting LBSA’s system, CVWO successfully deployed it in 2017. However, with every system migration comes bugs and teething issues. In order for the new system to serve LBSA reliably for the next few years and provide a stable base for future CVWO batches to build on, bugs needed to be fixed and technical debt resolved.
In order to achieve that goal, these were some of the main objectives for 2018:
Updating the system from Rails 4 to Rails 5: Ruby on Rails version 5 was a major upgrade released in 2016. However, as CVWO had been developing the system from 2016-2017, we could not upgrade it back then. In order to ensure maintainability of the system for future development batches, we performed this major upgrade this year. This entailed making extensive changes throughout the codebase and performing thorough tests to ensure that the upgrade will be transparent to LBSA staff.
Reports updates and fixes: Our application generates reports both for internal use and for reporting to the various ministries. Due to some changes in business logic and LBSA’s requirements, several reports were no longer accurate. We updated and fixed the existing reports and implemented some new ones to comply with new ministry requirements.
Implement and design new features: As this system was just deployed last year, LBSA staff had some feature requests that were necessary to streamline and simplify their workflow. This included a new donations module for LBSA to manage their fundraising efforts, and provide a base for them to outreach to past and potential donors. This necessitated new feature requirements, for which we drew up mock-ups for them as well as technical specifications for development. Multiple meetings were also conducted with relevant LBSA staff in order to better understand their needs. Due to the scale of the module, development of this module will only be completed next year.
Issue tracking: There was no proper ticketing system in place for LBSA to submit bugs and feature requests. Instituting an issue tracking system that could be accessed both by CVWO developers and key LBSA staff improved communication and allowed everyone to have the same picture of our progress. Additionally, future CVWO batches will be able to read past discussions in order to understand what work was required and the reasoning behind some decisions.
The groundwork for this project was already laid by the past two teams. In order to continue work on it, we first had to understand how it was designed, as well as the rationale behind these choices. This was extremely crucial, as some definitions were unintuitive and based on LBSA’s business requirements. The team began with framework updates as well as bug fixes to further accelerate the familiarization process.
Due to the scale of the application, work was largely divided on a per-module basis. This ensured that every module had an expert who deeply understood the requirements and processes of the modules they were working on.
Time was also spent learning essential and valuable skills, frameworks and tools such as Ruby on Rails, SQL, and Git.
- Shen Yichen (Project Lead, Year 3)
- Tan E-Liang (Project Lead, Year 1)
- Ang Wei Neng (Developer, Year 1)
- Jolene Tan (Developer, Year 1)
- Nicholas Lui (Developer, Year 4)
- Trang Mai (Developer)
- Yang Shuqi (Developer, Year 1)
- Zhang Yuntong (Developer, Year 1)
I came back to this project which got me started to real-world software engineering for just a month, as a way to tie things up. It was just as I expected: complex, full of twists, and great fun.
– Shen Yichen
Through CVWO, I have learned a lot about real-world software engineering and leading a great team. Knowing that our work will help LBSA staff for the next few years in their service of seniors has been immensely gratifying.
– Tan E-Liang
This is fun. 😊
– Ang Wei Neng
I am gratified to have the chance to use my skills to help others while learning software development skills at the same time.
– Jolene Tan
A meaningful way to spend a summer.
– Nicholas Lui
This is the beginning of something great.
– Trang Mai
I get practical experience from CVWO and know more about real-life CS here.
– Yang Shuqi
I have learnt so much about real-world software engineering from CVWO. Working with amazing people while learning new things was an invaluable experience.
– Zhang Yuntong
We would like to express our heartfelt gratitude to the following people who have been influential and supportive during our project:
- Prof Ben Leong (NUS) for his patient guidance.
- LBSA staff for their co-operation and support throughout the project.
- GIC for their generous support for the programme.