Kampung.SG

August 7, 2023

Kampung.SG Homepage

Kampung.SG – Google x Service Design Studio Project

Working on Kampung.SG was challenging yet fulfilling. It was very exciting to have the chance to play the role of a standalone agile software team and work with a read-world client almost entirely on our own to build a fullstack product across multiple sprints. Our team set out to build a learning management system (LMS) that was inclusive and community-focused, with a special emphasis on making the platform elderly-friendly. In an increasingly digital world, it's easy to overlook the needs of older generations who might struggle with technology. This was a central challenge we aimed to address with Kampung.SG, combining modern design with accessibility at its core.

The frontend of the LMS was built with React, allowing us to create a highly interactive and responsive user interface that could adapt to the various needs of our users. On the backend, we utilized Ruby on Rails, leveraging the MVC (Model-View-Controller) framework to maintain a clean separation of concerns and make the codebase scalable and maintainable. Decoupling played a significant role in our architectural decisions, ensuring that each component of the system could evolve independently without introducing unnecessary dependencies. I am quite fond of the software architecture of our product as I believe we managed to decouple every component in a meaningful and pragmatic way that translated into tangible benefits for the team, allowing us to work on separate components effectively and confidently.

Kampung.SG Software Architecture Diagram

Software Architecture Diagram

In line with modern best practices, we designed a microservice-focused system architecture. This approach allowed us to split the LMS into discrete services, each handling a specific part of the overall system. An API Gateway was implemented for authorization, ensuring that all incoming requests were routed securely and efficiently. This design made it easier to manage the system as it grew in complexity while also providing flexibility for future integration with other services.

Another key aspect of the project was our deployment strategy, which leveraged Google Cloud. We had the unique opportunity to work under the mentorship of Google Engineers, who guided us in integrating machine learning models to enhance the platform’s functionality. This experience was invaluable, giving me firsthand exposure to the challenges and best practices associated with cloud-based deployment and machine learning integration. From data preprocessing to model training and deployment, we took a holistic approach to ensure that our platform could leverage AI-driven insights in meaningful ways.

Agile and SCRUM methodologies were at the heart of our development process. We organized our team into rotating roles of Product Manager and Product Owner, allowing each member to experience different facets of the project lifecycle. This rotation ensured that everyone had a voice in the decision-making process and gave us a deeper appreciation for the intricacies of both roles. We conducted weekly sprints, maintaining close communication with our client and mentors to ensure that the project remained aligned with user needs and expectations. This iterative approach allowed us to quickly adapt to changes and continuously improve the platform based on feedback.

Kampung.SG wasn’t just a technical achievement—it was a human-centered project that challenged us to think about the role of technology in community building and inclusivity. I’m incredibly proud of what we accomplished, and the lessons I learned from this project continue to influence how I approach software development today.

Created by Matthias Lee