Seniors' Activity Centres (SACs) and Neighbourhood Links (NLs) are run by non-profit organisations to enhance the well-being of the senior citizens in the neighbourhood through organising activities and other community services. In addition, the placement of SACs among one- and two-room rental HDB apartments help ensure that basic healthcare needs are also met, should incidents arise.
For this project, we are supporting an expanded number of SACs and NLs as compared to previous batches:
- Care Corner Seniors' Activity Centre (located at Toa Payoh Blocks 5, 62B, 149, 170)
- Thye Hua Kwan Moral Society (THKMS). Henceforth, referred to as Moral Neighbourhood Link (located at Kaki Bukit)
- Joy Centre Neighbourhood Link
- Geylang East Home for the Aged (GEHA)
Our primary objective was to redesign the system, while maintaining the needed behaviours and data storage, and at the same time migrating to the newer Drupal 7 framework. This had to be done while maintaining the integrity of existing data such that no data is lost during the redesign.
The first secondary objective of our project is to streamline the workflow in the application. This is important because the intent of the system is to reduce the workload of the centre staff; a system that is incapable of doing this, or worse, adding to the workload of the staff would be counterproductive, and would mean that the system that has been built is useless. There were a few components in the application that behaved in awkward ways, which meant that users needed to go through roundabout procedures to achieve what they want.
Our following secondary objective was to implement some of the more urgent feature requests: notably, GEHA and Care Corner both requested for a mobile-phone application to utilise the system without bringing their computers around, and without the need to revert to pen-and-paper attendance.
During the first few weeks, we made several trips to each of the centres for the VWOs. We examined how each VWO function during their day-to-day operations and gathered feedback on how the CMS was used. On the technical side of things, we designed the database schema and worked with the other project team to consolidate the common base modules from both projects. This was done to minimise duplication of work from either team and allow code reuse.
We started work on upgrading the code to use the latest version of Drupal 7. Some modules were more directly ported (Client/Volunteer/Staff information modules), while others were more heavily redesigned (Activity/Facility/Touchscreen/Attendance), depending on the extent to which the existing features matched the needs of the client. We had regular meetings with the centres to ensure that what we were implementing would not be wrong and thus wasting our effort.
When most of the modules were completed, some of us proceeded to work on the mobile application. This included a new backend module to handle the client API calls and a frontend mobile interface.
Data Migration, Integration Testing and Deployment
Once each module was tested individually and merged together, we started migrating the data from the existing system to our newly developed one. Joel wrote scripts to automate this task and Alan assisted him in setting up Bamboo, which is a Continuous Integration (CI) tool.
Despite the major code overhaul, we did not lose focus on what we set out to achieve - a more user-friendly and less error-prone system. The new version of the system was not meant to bring quantum leaps in new features but instead to refine and upgrade the existing workflows to reduce the amount of time centre staff spend on paperwork.
Some of the features we have built/improved are:
- Print pages directly from the site that are properly formatted.
- Larger icons and a responsive design for touchscreen interface.
- Clickable figures for generated reports to show the individuals accounted for.
- Remove ambiguous Save buttons.
- Mobile app to help centre staff take attendance at off-site locations.
- Alan Yeo Jie Wei (Project Lead, Year 4)
- Joel Low Wor On (Assistant Lead/ Developer, Year 1)
- Zhang Ying (Developer, Year 4)
- Tay Chun Mei (Developer, Year 1)
- Yu Shuzhi (Developer, Year 1)
- Cheng Yingjie (Developer, Year 1)
The experience gotten from working on this project has been a memorable and fruitful one. I now know how it feels like to manage a team of developers to work on a medium-scale software application under a tight schedule.
– Alan Yeo
CVWO serves as a good avenue to put the knowledge we learnt in the classroom to good use. It is my personal conviction that what society has given to you, in terms of raw knowledge, should be used to benefit society at some point in time; otherwise, knowledge then just becomes selfish. Through CVWO, I have been able to use the skills I possess to directly impact the lives of others, and I am grateful for this opportunity being given to me.
– Joel Low
The 3-month project has not only given me a lot of hands-on experience in a real-life project, but, more importantly, provided me with an opportunity to serve to the community as well. I really felt proud that I have made a right decision in the last semester of my undergraduate study to join CVWO and be involved in one of the projects. This was definitely a great learning and working journey for me.
– Zhang Ying
It was a very meaningful experience working on this project. Through doing my part for the community, I learnt the importance of good communication with clients, and figured out how to communicate with them more effectively. I have also honed my technical abilities much more than I had expected to, particularly because of the variety of technologies that I was exposed to.
– Tay Chun Mei
My Fellowship in CVWO has been a wonderful and meaningful journey. Besides learning technical skills, I also realised that programmers can serve the society in meaningful ways with their abilities. This has motivated me to improve myself further as a coder.
– Yu Shuzhi
It has broadened my perspective and imparted to me a new understanding towards programming. I now have a better understanding of how to work in a team and develop a large project. I have also learnt that programming skills should not be the main focus for us in future. Many programmers have good programming skills. But what distinguishes us from others is the ability to understand what we should build to meet customers' requirements and how to build it in an elegant manner.
– Cheng Yingjie
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 and wise advice
- Jonathan Low and Andrew Eng for their valuable contribution in handing over of the project
- All the staff at the various NLs/SACs for taking time off their busy schedules to work with us