Open Source

Svelte Headless Table

Unopinionated and extensible data tables for Svelte.

svelte-popperjs

Popper for Svelte with actions, no wrapper components or bindings required.

svelte-previous

A Svelte store that remembers previous values.

svelte-keyed

A writable derived store for objects and arrays.

svelte-subscribe

Subcribe to non top-level stores in your Svelte template.

vim-colorscheme-icons

Colorize vim-devicons with the current colorscheme.

zoo-ids

Generate predictable and unique identifiers composed of adjectives and animals in the browser.

tailwindcss-global-dark

A TailwindCSS variant for class-based dark mode with CSS Modules.

tailwindcss-extrude

Extrude your elements for a retro look!

tex-er-diagram

A LaTeX package for drawing entity-relationship diagrams quickly.

sequence-crdt

An implementation of a sequential conflict-free replicated data type in C using LSEQ.

Applications

meetwhen.io

A beautiful and mobile-friendly group scheduling application.
    meetwhen meeting meetwhen meeting wide layout meetwhen profile page meetwhen create new meeting page

  • Svelte Svelte
  • SvelteKit SvelteKit
  • TypeScript TypeScript
  • TailwindCSS TailwindCSS
  • Node.js Node.js
  • Firebase Firebase
  • GraphQL GraphQL

meetwhen.io helps you schedule meetings and hangouts around the world. Quickly create and join meets with no sign up required, or sign in with an account to keep track of your previous and upcoming meets!

You can also add relevant links and details for easy access later and see when your friends are the most available.

HelloWorld

A mobile AR application that lets you explore the world from your home.
    helloworld ar demo helloworld map overview

  • React React
  • React Native React Native

CODE_EXP 2021 · 1st Place

HelloWorld is a quick hackathon project that provides a taste of tourism when travel was restricted during the pandemic.

You can decorate your personal spaces with virtual landmarks and attractions to immerse yourself in the cultural icons of your favorite destinations. Once you've built your world, hop onto the Discover page to learn more about each landmark.

University

Kopi Time

CS302 IT Solution Lifecycle Management
  • TypeScript TypeScript
  • Python Python
  • React React
  • Next.js Next.js
  • TailwindCSS TailwindCSS
  • Node.js Node.js
  • Flask Flask
  • GraphQL GraphQL
  • REST REST
  • RabbitMQ RabbitMQ
  • MySQL MySQL
  • NGINX NGINX
  • Docker Docker

Kopi Time is a digital marketplace for coffee-related art and collectables.

We implemented a reliable and robust microservice architecture to handle market trading functionality, listing expirations, and user notifications.

Most notably, we developed a framework-agnostic implementation of the saga pattern we named the Saga Engine to orchestrate transactions and compensating actions across multiple microservices.

COMO Club

CS301 IT Solution Architecture
  • TypeScript TypeScript
  • Python Python
  • Svelte Svelte
  • SvelteKit SvelteKit
  • TailwindCSS TailwindCSS
  • Flask Flask
  • REST REST
  • RabbitMQ RabbitMQ
  • MySQL MySQL
  • NGINX NGINX
  • Docker Docker
  • CloudFormation CloudFormation

We designed a highly available and maintainable backend architecure for our SMU-X sponsor — COMO Group.

Most notably, our architecture fails gracefully when third-party external services are unavailable.

To do so, we continuously check the health of external services. When an external service fails a healthcheck, we queue all client requests and notify users of the temporary disruption. Once the external service is healthy, we automatically trigger a recovery phase and continue with regular execution.

Wok N Roll

CS206 Software Product Management
  • TypeScript TypeScript
  • Java Java
  • Svelte Svelte
  • TailwindCSS TailwindCSS
  • Spring Spring
  • REST REST

We conducted market research and discovered an unfulfilled niche for a comprehensive database and search engine for hawker food in Singapore.

Using this database, we developed a product, risk mitigation strategies, and a feature roadmap for future growth.

Ryver Bank

CS203 Collaborative Software Development
  • Java Java
  • Python Python
  • Spring Spring
  • Flask Flask
  • scikit-learn scikit-learn
  • REST REST
  • MySQL MySQL
  • Docker Docker

We designed a simple trading platform for our SMU-X sponsor — Credit Suisse.

Given multiple core functionalities in the requirements, we used microservices to reduce the complexity of each component and enable developers to work semi-independently.

We also developed a simple ML-powered stock recommendation engine.

For our efforts, we were awarded the Best Technical Team achievement.

Simulation of Voting Fairness in Singapore

CS426 Agent-based Modelling and Simulation

We modelled various gerrymandering and Group Representation Constituency allocation strategies using an agent-based simulation to explore the impacts of voter flexibility and distribution on the fairness of representation.

Network and Link Layer Emulation

CS441 Network Security

We emulated a simplified version of the MAC and IP protocol on top of network sockets for our physical layer.

With the emulated network, the project requires a study and implementation of IP spoofing, IP filtering, and packet sniffing. Our group went beyond the requirements to implement private and public network separation, a simple public routing protocol, the ARP protocol, and IP traceback.

Optimizing Hotel Bookings

CS421 Introduction to Machine Learning
  • Python Python
  • scikit-learn scikit-learn

We analyzed data on hotel booking demand and explored a variety of machine learning techniques to predict the cancellation of a given hotel booking based on pre-existing features.