Personal

10 total
  • Lester Chan's Webpage 6.0

    WordPress PHP Tailwind CSS React MySQL

    Version 6.0 is the sixth major iteration of the site and its biggest structural change since version 5.0 in 2020. It is also the first built almost entirely by prompting, using Claude Code. After more than two decades with a sidebar, it was finally retired in favour of a wider single-column layout, with posts laid out in clean card grids led by the latest story. This was deliberately not a re-skin: the colour scheme and overall identity were kept, while the structure and reading experience were rebuilt from the ground up.

    The redesign reached across the whole site. The About, Site, and Portfolio landing pages and the live React dashboards for Analytics and Users Online were given a fresh, consistent look. Tables inside posts were restyled with striped rows and cleaner, dark-mode-aware borders, and colours were tuned for contrast throughout. A full accessibility overhaul brought the site to WCAG AA contrast in both light and dark mode, with a skip-to-content link, visible keyboard focus rings, screen-reader landmark labels, and reduced-motion support.

    Under the hood, the front end was rebuilt on Tailwind CSS v4 and React 19, with the theme's CSS deduplicated into shared base classes and Webpack asset handling modernized. Search gained a dual-engine setup that pairs the Algolia InstantSearch app with a native, server-rendered WordPress fallback, and it now indexes post summaries so results match on excerpt text too. Related posts were re-ranked by shared terms rather than matching categories, database queries were optimized, read-time estimates cached, and web fonts self-hosted to drop the Google Fonts CDN. Comments were also brought back in-house, retiring the third-party Disqus embed for WordPress's own native threaded comments, guarded against spam by Cloudflare Turnstile.

    Quality was backed by automated test suites: Playwright computed-style visual-regression and axe-core accessibility checks alongside expanded JavaScript and PHP unit coverage. The entire post archive was cleaned up, with dead links, broken HTML, and stale images removed, and every post now carries a concise AI-generated summary, shown in full on cards, in search, and in feeds. The site continues to run on a custom WordPress plugin and theme of my own.

    Lester Chan's Website 6.0 - Screenshot #1 Lester Chan's Website 6.0 - Screenshot #2 Lester Chan's Website 6.0 - Screenshot #3 Lester Chan's Website 6.0 - Screenshot #4 Lester Chan's Website 6.0 - Screenshot #5 Lester Chan's Website 6.0 - Screenshot #6 Lester Chan's Website 6.0 - Screenshot #7 Lester Chan's Website 6.0 - Screenshot #8
    2026
  • Lester Chan's Webpage 5.0

    WordPress PHP Tailwind CSS React MySQL

    Version 5.0 was a complete redesign, undertaken during the COVID-19 lockdowns in 2020 after seven years on version 4.0. The goal was to modernize the stack, remove outdated functionality, and establish a cleaner, more maintainable foundation.

    The site was restyled using Tailwind CSS and Tailwind UI components, with PurgeCSS keeping stylesheet sizes minimal. Dark mode support was added, with user preference persisted in local storage. jQuery was removed entirely - the Tailwind UI components for Dark Mode Toggle and Responsive Navigation were rewritten in plain JavaScript rather than relying on Alpine.js.

    Four major sections - Analytics, UsersOnline, Search, and Archive - were rebuilt in React. Chart.js powers the analytics graphs, with date-fns for date handling and Lodash for utility functions. The build system was migrated from Gulp to Webpack, with separate entry points per React component. Code quality is enforced with ESLint and Prettier.

    Search was moved to native Algolia integration, replacing the previous approach of proxying requests through WordPress. A custom gallery lightbox was developed while awaiting the release of Fancybox v4. Eleven pages and five WordPress plugins were removed, including contact forms and polling functionality.

    Lester Chan's Website 5.0 - Screenshot #1 Lester Chan's Website 5.0 - Screenshot #2 Lester Chan's Website 5.0 - Screenshot #3 Lester Chan's Website 5.0 - Screenshot #4 Lester Chan's Website 5.0 - Screenshot #5 Lester Chan's Website 5.0 - Screenshot #6 Lester Chan's Website 5.0 - Screenshot #7 Lester Chan's Website 5.0 - Screenshot #8
    2020
  • Lester Chan's Webpage 4.0

    WordPress PHP Bootstrap MySQL

    This release marks the fourth version of my website and the second iteration of the Lester Chan brand.

    A major addition is the introduction of a custom logo, designed by my wife, Li Xiang, giving the site a more distinct and recognizable identity.

    The website was rebuilt using Bootstrap 3.3 and Font Awesome. With Bootstrap's responsive design framework, the separate mobile theme was retired in favor of a unified experience across desktop, tablet, and mobile devices.

    Social sharing features and social statistics were also introduced to improve content discovery and engagement.

    The Gallery section was simplified by removing personal photo collections. It now serves as a mirror of my gadget photography albums hosted on Flickr.

    The source code repository was migrated from Bitbucket to GitHub, with automated deployments powered by GitHub Actions.

    On the infrastructure side, the website runs on PHP 7.4, MariaDB 10.4, and nginx 1.16. It supports HTTP/2 and is secured with SSL certificates issued by Let's Encrypt.

    Search functionality is powered by Algolia, whose sponsorship provided access to their services.

    Lester Chan's Website 4.0 - Screenshot #1 Lester Chan's Website 4.0 - Screenshot #2 Lester Chan's Website 4.0 - Screenshot #3 Lester Chan's Website 4.0 - Screenshot #4
    2013
  • Lester Chan's Webpage 3.0

    WordPress PHP MySQL jQuery

    Originally known as GaMerZ HomePage Version 3.0, this release was renamed to reflect my real name, marking a deliberate shift away from the GaMerZ brand.

    The migration from version 2.0 took roughly a year due to substantial architectural changes. The most significant change was an upgrade from WordPress 1.5.1 to 2.5.1. Previous versions were built independently with WordPress integrated afterward; version 3.0 reversed this by building the entire site around WordPress from the ground up, simplifying future upgrades and content management.

    jQuery was used extensively to deliver AJAX-powered functionality and rich front-end animations throughout the site. Several of my popular WordPress plugins were incorporated directly, including WP-Polls and WP-UserOnline. All iconography was provided by FamFamFam's icon set.

    Lester Chan's Website 3.0 - Screenshot #1 Lester Chan's Website 3.0 - Screenshot #2 Lester Chan's Website 3.0 - Screenshot #3 Lester Chan's Website 3.0 - Screenshot #4
    2008
  • GaMerZ Expenses Tracking System

    PHP MySQL

    This web application was built to automate expense tracking for friends who had been relying on Microsoft Excel spreadsheets. The manual process was time-consuming and prone to errors.

    The application provides automated monthly expense tracking with supplementary reporting features. Users can register an account and monitor their expenses online at no cost.

    GaMerZ Expenses Tracking System - Screenshot #1 GaMerZ Expenses Tracking System - Screenshot #2 GaMerZ Expenses Tracking System - Screenshot #3 GaMerZ Expenses Tracking System - Screenshot #4
    2005
  • GaMerZ Army Schedule Calendar

    PHP

    Built during my national service, this calendar tool was designed for a shift-based rotation system covering mount, dismount, training, and standby duties. Given any date, the application identifies the specific shift assigned for that day.

    The lookup was reduced from manually reviewing a marked physical calendar to just four steps, saving considerable time for anyone on the same rotation cycle.

    GaMerZ Army Schedule Calendar - Screenshot #1 GaMerZ Army Schedule Calendar - Screenshot #2 GaMerZ Army Schedule Calendar - Screenshot #3
    2005
  • GaMerZ File Explorer

    PHP

    Inspired by Windows Explorer, this web-based application enables directory browsing on web servers, allowing users to navigate folder structures and view files directly through a browser interface. A live demo is available at files.lesterchan.net.

    GaMerZ File Explorer - Screenshot #1 GaMerZ File Explorer - Screenshot #2 GaMerZ File Explorer - Screenshot #3 GaMerZ File Explorer - Screenshot #4
    2004
  • GaMerZ HomePage Version 2.0

    PHP MySQL WordPress

    After two years, the homepage received a significant visual refresh with much more vibrant and brighter colors. The blogging platform was upgraded from b2 to WordPress, and I built a suite of new WordPress enhancements alongside it: wp-polls, wp-stats, wp-online, wp-members, and wp-search, among others.

    Gallery Viewer and Image Viewer were updated to version 2.0, completely rewritten from scratch for improved efficiency. All pages were recoded from scratch as part of the overall performance overhaul.

    GaMerZ HomePage Version 2.0 - Screenshot #1 GaMerZ HomePage Version 2.0 - Screenshot #2 GaMerZ HomePage Version 2.0 - Screenshot #3
    2004
  • GaMerZ HomePage Version 1.0

    PHP MySQL

    Originally created as an assignment for the WEBP module during my first year at Singapore Polytechnic, the project began as static HTML pages as required by the course. After receiving a distinction (AD) grade, I converted the entire site to dynamic PHP while preserving the original layout.

    Seasonal occasions prompted layout and header color changes for Valentine's Day, Christmas, and Chinese New Year. Two color schemes were implemented - blue and red - as shown in the screenshots.

    GaMerZ HomePage Version 1.0 - Blue Screenshot #1 GaMerZ HomePage Version 1.0 - Blue Screenshot #2 GaMerZ HomePage Version 1.0 - Red Screenshot #1 GaMerZ HomePage Version 1.0 - Red Screenshot #2
    2002
  • Counter-Strike City [CS City]

    PHP Perl

    Also an assignment for the WEBP module during my first year at Singapore Polytechnic, this site began as static HTML pages and earned a distinction (AD) upon completion. It was subsequently converted to dynamic PHP and Perl for content management.

    Like the GaMerZ HomePage, seasonal occasions - Valentine's Day, Christmas, and Chinese New Year - triggered layout and header color changes. Two color schemes, blue and red, are documented in the screenshots. Counter-Strike City predates the GaMerZ brand and was one of my earliest web projects.

    CS City Screenshot #1 CS City Screenshot #2 CS City Screenshot #3
    2000

Freelance

3 total
  • All Events Group

    PHP MySQL

    All Events Group is a business-to-business information and media company providing industry intelligence, professional skills development, and networking opportunities. Their services span conferences, professional training, congresses, exhibitions, trade shows, online communities, and publications across the finance, mining, energy, and human resources sectors.

    The custom-built Content Management System comprises nine modules: Currencies, Users, Categories, Events, News, Jobs, Glossary, Gallery, and Forum. The most complex aspect was that each event required its own distinct layout and image folder while still allowing streamlined content updates through the shared CMS.

    Payment processing was handled through eNETS integration, with registrations approved instantly upon successful payment. The client supplied all graphics and layouts. Beyond the main website, I also developed a separate web-based customer database, allowing clients to add, edit, delete, and search records through a browser interface.

    AllEventsGroup.com - Screenshot #1 AllEventsGroup.com - Screenshot #2 AllEventsGroup.com - Screenshot #3 AllEventsGroup.com - Screenshot #4
    2007
  • First Food Industries

    PHP MySQL

    Established in 1987, First Food Industries specialises in pickled mustard, Sichuan vegetables, confectionery, snacks, and preserved fruits, with an extensive distribution network across Singapore. The company exports primarily to Malaysia, Indonesia, Vietnam, and Cambodia, and holds agency rights for global brands including Glico, Master, Bright Pearl, Feng Zheng, and Tai Zhi Wei.

    The custom Content Management System was built with six modules: Users, News, Products, Product Meta Data, Categories, and Gallery. The client's goal was an online product catalogue rather than an e-commerce platform, so no payment integration was required.

    FirstFood.com.sg - Screenshot #1 FirstFood.com.sg - Screenshot #2 FirstFood.com.sg - Screenshot #3 FirstFood.com.sg - Screenshot #4
    2006
  • Clearance System

    PHP MySQL

    The Gombak Base Security Company Section needed a web-based replacement for their FileMaker Pro 7.0 clearance system, which had recurring issues with date format accuracy - a critical requirement for a military clearance workflow.

    A JavaScript NRIC validator was built into the system, ensuring all entered values conform to Singapore's Modulus 11 validation algorithm. Icons were sourced from Foood's Icons collection.

    Clearance System - Screenshot #1 Clearance System - Screenshot #2 Clearance System - Screenshot #3 Clearance System - Screenshot #4
    2005

School

4 total
  • Raffles Airline HR Management System

    J2EE MySQL

    Built for NUS CS3214 (Information Systems Development Project), this HR Management System for the fictional Raffles Airline was developed using Java Enterprise Edition with a MySQL database and strict Model-View-Controller architecture. The module was worth 8 MCs, equivalent to two standard modules.

    Ten official modules were delivered, with additional custom modules developed beyond the requirements. As team leader, I directed the overall planning and framework, integrating all contributions into a cohesive platform. My personal scope included the Retirement and Re-employment module, security, routing, messaging components, and PSD-to-HTML layout conversion. The six-member team completed the project over three months, and I received a grade of A-.

    Raffles Airline HR Management System - Screenshot #1 Raffles Airline HR Management System - Screenshot #2 Raffles Airline HR Management System - Screenshot #3 Raffles Airline HR Management System - Screenshot #4
    2007
  • Max Interactive

    PHP MySQL Smarty

    Completed as an internship project at Singapore Polytechnic, Max Interactive was at the time my largest PHP undertaking - a mini-scale Content Management System built for educational companies.

    The system includes users, user groups, forums, polls, categories and subcategories, documents, attachments, and browser-based administrative database management. Three access levels are supported: Administrator, Instructor, and Student. Smarty templating was used so that administrators could modify the front-end appearance without touching the backend.

    Max Interactive - Screenshot #1 Max Interactive - Screenshot #2 Max Interactive - Screenshot #3 Max Interactive - Screenshot #4
    2004
  • The QuietRoom

    ASP SQL Server

    This was my final-year project at Singapore Polytechnic, assigned to my group by the institution. The team consisted of six members - three programmers and three designers and Flash animators - with me serving as group leader and lead programmer.

    The project has two components: The QuietRoom and Cognitive Behavioural Therapy (CBT). Our client was Dr. Daniel Fung, a Child Psychiatrist from the Institute of Mental Health's Child Guidance Clinic. The QuietRoom provides parents with information about Selective Mutism, an uncommon condition where children who can speak normally in some environments - such as at home - become mute in others, such as school. I received a distinction (AD) for this final-year project.

    The QuietRoom - Screenshot #1 The QuietRoom - Screenshot #2
    2003
  • Cognitive Behavioural Therapy [CBT]

    ASP SQL Server

    This is the second component of my final-year project at Singapore Polytechnic, paired with The QuietRoom. While The QuietRoom informs parents, this website helps children with Selective Mutism directly through fun, interactive online activities. The programme spans 14 weeks of structured treatment, designed so that by the end most children are expected to overcome the condition.

    Cognitive Behavioural Therapy [CBT] - Screenshot #1 Cognitive Behavioural Therapy [CBT] - Screenshot #2 Cognitive Behavioural Therapy [CBT] - Screenshot #3
    2003