In this project, we worked on maintaining and upgrading the a web application which provides support to the GIC’s Sparks and Smiles programme, including more features and providing a better user experience for our clients.

Sparks and Smile is a programme initiated by GIC. Students would be trained by experienced social service professionals and commit 25 hours to serve the community, particularly mentoring children and youth.

Sparks Awardees gain access to different skills, experiences and opportunities, to empower them to grow in confidence and leadership, and play a positive role in their communities over the long term.

Sparks application provides a friendly user-interface that unifies all the complicated workflow that is previously done, eliminating multi-medium information storage (hard copy, spreadsheets, phone-calls). In addition, the application will provide automated calculation for the students’ service hours and reflection writing, clear overview for the administrator, as well as automated email notifications.

Over an entire year of using the application, Beyond has given us very positive feedbacks and requested for more features to be added into the application to further facilitate the programme workflow.

Project Objective

1. Including more features

We worked on implementing new features that can help improve the work efficiency for our clients further. Examples of the new features include integrating Assessment Reports into our system so that beyond can fill in the reports for students inside our application and download the PDF that is automatically generated by the system. Another feature we included is a batch student registration process where staff can import students in group by uploading a CSV file containing the students’ information to the system.

2. Better Workflow and UI/UX

We emphasized on improving UI and UX this summer to ensure that the application is conveinient and easy enough for our clients to use. By keeping close contact with our clients and putting ourselves into the shoes our the users, we refactored the previous workflow to be more intuitive and user-friendly. Examples include adding a Save As Draft button in the reflection page where users can save the reflection in progress when they are not ready to submit it yet and a Verificaion page and a Comments page where users can easily track the latest actitivies in the application.

3. Maintenance

Apart from adding on to the application, we also put in effort fixing legacy issues. During a year of using the application, our clients have flagged out some bugs and issues they found out while using the application. Hence one of our main objective this summer is centered around fixing existing issues.

Also, we upgraded the backend Rails version from Rails 5.2 to Rails 6.0 which is the latest rails stable release by Aug 2020. We upgrade to the latest version to keep up to date to the latest issue fixes. Also the latest version of Rails is better supported by the community. Hence upgrading to Rails 6 allows our application to be more scalable in the future.

Project Process

1. Codebase Familiarization

The groundwork for the Sparks project was already laid by the previous team. In order to continue work on it, we first had to understand how it was designed, as well as the rationale behind these choices. We gradually got familiar with the code base while we engaged in bug fixes for the system.

2. Building New Features

After meeting with the Sparks client, our team carefully designed new schemas for the database according to the need of our clients and also putting in consideration of extensibility for future development. As we were developing, we kept in touch with our clients to seek clarification. We put emphasis on UI and UX and gathered advice from clients and Prof Ben to improve the design of the new features.

3. Refactoring Workflow

As we were working on developing new features for the application, we constantly reflected on what can be improved to make the application more efficient and more convenient to use. As we kept communication with the clients, we understood deeper about the user needs, allowing us to find ways that can improve on the current workflow.

4. Deployment

We deployed our application on a newly spined Digital Ocean droplet. When we have done setting up the new application, we switched the floating IP address of the Sparks application over from the old droplet to the new droplet. As switching floating IP takes effect instantly, we managed to get the application upgraded within a few seconds. Also, by dockerising the application, we were able to apply patches to the application quickly by just pulling the docker images and running them.


Project Team

  • Tiu Wee Han (Project Lead)
  • Zhou Zijian (Project Co-Lead, Year 1)
  • Seow Alex (Developer, Year 1)
  • Aung Thuya Oo (Developer, Year 1)


CVWO Sparks joy 🙂

- Tiu Wee Han

CVWO is a very enriching experience for me. Working on CVWO is not merely about grasping the technology stack but also about learning to work as a team efficiently and communicate clearly. Techonology can be learnt through books or tutorials, but other soft skills are much harder to acquire. CVWO offers me a precious opportunity to hone these skills.

- Zhou Zijian

CVWO has been a valuable experience that I feel everyone should go through given the opportunity. Whether you’re a beginner with no web development experience, or you already have several web applications under your belt, CVWO offers many learning opportunities, ranging from frontend/backend development, DevOps, project management and even communication with clients.

- Seow Alex

Doing CVWO this summer was a great experience that cannot be found elsewhere. The soft skills that I’ve learned such as collaboration and communicating with the client will stay with me for my future career as a software engineer.

- Aung Thuya Oo

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
  • GIC for their generous support for the programme
  • Beyond Staff for their co-operation and support for the programme