In this project, our clients comprised of the Seniors' Activity Centres (SACs) and Neighbourhood Links (NLs) located across Singapore, which provide welfare services targeting the elderly. These centres act as a focal point for senior residents and help to enhance their well-being through socio-recreational programmes and activities. They are usually located at the void decks of selected 1- and 2-room HDB rental blocks. Presently, our client base consists of 7 SAC/NL centres coming from 4 different organisations:
- 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 migrate the existing system from PHP/Drupal to the Ruby-on-Rails stack, while maintaining the integrity of the data and the functionaity of the current system. This stack transition will help to improve the long-term maintainability and usability of the site.
The second objective was to streamline the workflow and increase the productivity of our clients. Even though the current system is able to satisfy the daily needs of the centres, it is still missing advanced features that the centres require occasionally. We will conduct a new requirement analysis and report review to ensure the relevancy of the system for our clients.
In order to understand the needs of the centres, we visited each of the centres and went through a thorough analysis of the current system. These face-to-face meetings gave us great insight into the problems and limitations of our old system and provided us with a guiding map in developing our new system. Given the need to migrate the old Drupal system to a new application stack, we had the opportunity to re-look through the existing architecture and adapt it to the new needs of SACNLs.
Development of the system
The team was then split up into three different teams, and initially focused on duplicating the existing features from the old system to the new framework. This took up around 8 weeks of the development process. New features were then added onto the task list and implemented at the end of the process.
Data Migration, Integration Testing and Deployment
Data were then migrated from the old schema to our new schema. Team members were also tasked with implementing unit tests for different components. The system was then deployed to our staging and production server.
The project was a success as the team was able to develop and deploy the application after three months of hard work. The new system was implemented to retain all the existing features of the system. Through the development process, the UI of the system underwent a number of iterative changes as we strove to improve the productivity of the system.
- Lin Xuanyi (Project Lead, Year 3)
- Karen Ang (Developer, Year 2)
- Tjong Anthony (Developer, Year 1)
- Lim Kiang Teng (Developer, Year 1)
- Le Ba Hieu Giang (Developer, Year 1)
- Gable Heng (Developer, Year 1)
- Liu Yang (Developer, Year 1)
- Vincent Seng Boon Chin (Developer, Year 1)
The time and effort spent in managing a team and shipping a production level system for the SACNLs was tiring but extremely rewarding. The clients benefitted from a better system, the team benefitted from the improved skills and friendships fostered from experiencing and sharing the pain, and I, as the team lead, grew as a person and as a leader.
This summer has been particularly fruitful as I am able to learn and acquire skills in developing a large-scale system using the Ruby on Rails framework. Moreover, it is heartening to see that the system developed can directly aid the centre staff in smoothing their workflow and lightening their workload.
– Karen Ang
Throughout the project, I experienced all the emotional stages of making a software product. There was stress when a bug seemed unfixable. There was amazement when some elegant solution to the bug was found. There was satisfaction when we finally deployed our working system to the centres. And there was a subtle void when we realise the project is coming to an end.
CVWO has been a whirlwind of requirement gathering, development and firefighting. I have learnt a tremendous amount in terms of software engineering and what it takes to ship a product to real life users.
– Kiang Teng
CVWO made my summer holiday meaningful and full of lessons learnt. This is the first time that I worked in a real world project. I did learn a lot. It enriched my knowledge and skills with regard to web development, let me know lots of nice and excellent friends and gave me a precious experience of working in a team.
– Liu Yang
CVWO is definitely a turning moment in life for me. It exposed me to a lot of new things that I have never even heard before.
I am very grateful for this experience as I have gained tremendously over this summer. One of my goals from working in CVWO is to gain enough experience such that I can work on CS projects independently. It would still be a distant dream if not for the skills and experiences that I gained from working in CVWO.
I am grateful to have been given the opportunity to be a part of CVWO as it is work that I truly find to be very meaningful. This internship has also allowed me to hone my technical abilities and given me a glimpse into what coding as a team entails.
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
- Our seniors Joel Low and Tay Yang Shun, for their timely advice and feedback.
- All the staff at the various NLs/SACs for taking time off their busy schedules to work with us