My Portfolio

My Portfolio

About me

I am a 15-year old who is interested in creating applications/websites that benefit the open-source community. I started programming about 3 years ago when I was browsing sites that were hosted on GitHub Pages and came across the source code of one GitHub Page. Ever since that day, I have never stopped programming.

I am currently in my last year at School of Science & Technology, Singapore, about to get ready for the biggest exam of my 10+ years in education ever - O Levels which would begin in a few months.

So far, I have created a few side projects which are all open sourced on GitHub such as a Study Buddy or an Angular library for the YouTube Data v3 API.

However, I'm mostly interested in creating small websites such as StudyBuddy for the web, this website the portfolio is on and the demo website for the Angular library I've previously stated above.

I use a 13-inch Early 2015 MacBook Pro as my primary and personal computer for my school and a Neffos C7 phone running Android Oreo for testing my Android applications on.

When I'm not working on my projects, I usually read programming and non-fiction books ranging from History to Science and English.

My LEAPS record


  • In 2018, at the start of the June Holidays, I attended the North-West Scout Leadership Course that taught me about the traits that a leader should possess, as well as developing my leadership styles and how to better manage my leadership power and influences.

  • From 2018 to 2019, I volunteered myself to be a House Representative so that I could lead my peers in House activities such as the Outdoor Education Expedition (OEE) in 2018 for Secondary 2s that my school organises every year for the other Secondary levels.

    Note: The purpose of OEE is to expose students to the outdoors and for a break from regular lessons in class.

    From this experience, I have learnt how to organise activities for my juniors. For example, in 2018 for OEE, instead of the teachers organising the event, they decided it was our turn to organise the event, but they would guide us along the way. The reason they gave us the task of organising the event was because they wanted us to experience what it was like to actually plan the whole event out before executing the plan.

    I have also learnt to always prepare for unforeseeable cirsumstances such as unexpected weather. For instance, in the same OEE which I helped to organise, we had to come up with a backup plan in case of wet weather.


Activity Description Year
Junior Achievement It's my Business! Workshop I attended the JA It's my Business! Workshop, where I learnt about entrepreneurship skills which I could apply later in the future. 2016
Australian Mathematics Competition 2016 I took part in a competition with all of the Secondary 1s where we had to take a test involving Mathematics. 2016
Global Citizenship Programme (GCP) - Bangkok I had to attend a programme where some of the Secondary 1s would be selected to visit other nearby countries in Asia to learn more about them. Afterwards, my group advocated on pet ownership in early 2017. 2016
Computational and Algorithmic Thinking (CAT) Competition I took part in a 1hour competition where I had to put my Computing-related skills to the test. 2017
Big Science Competition I took part in a competition which put my critical thinking and problem solving skills to the test. 2017
Outdoor Education Expedition I took part in the OEE camp which exposed me to the outdoors by trekking from MacRitchie Reservoir to Bukit Timah Hill. 2017
Outward Bound Singapore I took part in OBS where I stood off the mainland for 5 days and 4 nights and bonded with my peers. 2018
Australian National Chemistry Quiz I took part in a quiz where I was tested on Chemistry topics and widened my knowledge of Chemistry at the same time. 2018


Event Involvement Year
National Chinese Mobile App Development by Students for Students Competition Represented School at Local Event 2018
3M InnoScience Challenge Represented Class at Intra-School Event 2016

Co-Curricular Activities

From Secondary 1 to the end of Semester 1 in Secondary 4, I joined Scouts which I put as 3rd choice over Media Club and Robotics.

I have since bonded with my juniors and made friends with peers of the same Secondary level as me.


GitHub Action

Build and deploy to GitHub Pages (GitHub Action)

Status: in development

As what the project name indicates, this is a GitHub Action with the intention of building and deploying a Jekyll site to GitHub Pages. (Note - this was specifically created to workaround the problems of GitHub not supporting specific plugins in GitHub Pages by manually building the Jekyll site instead of being automatically built by GitHub Pages.)

This project was heavily inspired by previous GitHub Actions which would perform a similar task but were outdated. My project also allows for additional options to be specified such as the ability to invoke the --force flag when pushing the built site to GitHub Pages, which would override any old changes for the branch, as well as supporting user pages that only allow deployment via the master branch or the docs folder.

The project is currently at version 2.2.1. The former version (version 1) is no longer supported as GitHub Actions no longer support the former HCL workflow syntax.

For more info about the project, check out the source code or the GitHub Marketplace listing for the Action.


Computing Performance Task 2018

Status: done

A Python program (made by me along with a peer for the purposes of a performance task that required us to work in pairs or groups to create a new program that would achieve a specific task) that allows the user to group a list of students imported from an Excel spreadsheet or a CSV (comma-separated value) file into groups, which can be exported as an Excel spreadsheet/CSV file.

This program is ideally meant to be run with Python v3.7.3 or higher. For more info about the project and on how to start it, check out the README file located at the root of the source code.


Edric's website

Status: in development

This project is essentially the website you’re looking at right now.

The website uses the following technologies:

This website is the 2nd iteration of the original website which used the following frameworks:


RSS Reader

Status: in development

An Angular app based on an example Angular app by BeCompany GmbH and updated to the latest version of Angular.

The app also includes features such as the ability for the user to specify a feed to be read into the RSS feed, as well as retrieving the headlines of a country and a refreshed interface. (The original app only had a list of cards which could be clicked on.)

Unfortunately, work on the app has been temporarily ceased due to other projects and the lack of time. (EDIT - Work on the app has recently resumed with new features such as a release notes page, among bug fixes.)

Application, Game


Status: archived

An educational game made for the Singapore Chinese Centre of Learning Competition in 2017-2018 with two peers - Teo Wei Hao and Aakash Sanjay Mehta.

The app’s purpose was to aid children in primary schools in their Chinese studies and was supported on Android and iOS.

The project was submitted in late 2017 with a video showing how to play the game and a certificate of participation was awarded in late 2018.

The source code of the two apps was archived on 23 Aug 2018. Development of the apps has been ceased.


StudyBuddy for Android

Status: in development

An app that helps you keep track of your tasks and events, as well as the ability to chat with your peers and a usage manager that indicates how long you’ve spent your time on your phone. This is the Android version.

The app uses the following products:

  • Firebase
    • Firebase Authentication - User authentication
    • Firebase Crashlytics - To handle crashes
    • Firebase Cloud Messaging - Message users
    • Firebase Firestore - Store data
  • AndroidX Libraries
  • Material Components for Android

This app was based on an idea by the student counsellor of my school.


StudyBuddy for web

Status: in development

An app that helps you keep track of your tasks and events, as well as the ability to chat with your peers. This is the web version.

The app uses the following products:

  • Firebase
    • Firebase Authentication - User authentication
    • Firebase Firestore - Store data
    • Firebase Hosting - Hosting the web version
  • Angular v8
    • Angular Material
  • HTML + CSS + TypeScript (which is compiled to JavaScript by the Angular CLI)

This app was based on an idea by the student counsellor of my school.



Status: in development

An Angular wrapper of the HttpClient class provided by @angular/common/http, but simplified to a few easy to understand methods. Also internally used by the ngx-ytd-api library.

For more info about HttpClient, view the docs.

Note: Development for this Angular library may soon be stopped in favour of a better Angular library such as ngx-api-utils.



Status: in development

An unofficial Angular library wrapper of the YouTube Data v3 API.

The wrapper currently supports the following APIs:

  • Comment threads/Comments (list/add/delete/edit comment threads/comments)
  • Search (search for videos and/or channels and/or playlists)
  • Videos (check if the specified video has been liked, list video’s details)

This library uses the following libraries:

An update is available!