Skip to content
All work
04Front-End Developer · IT1x15 UX Design in Web Development · AY2025 Semester 1Completed

Table Tennis CCA Website

The club had no home on the web — schedules and results lived in group chats. I designed and built one, from wireframe to deploy.

nyp-tabletennis.com
Homepage Hero
Homepage Hero
  • 7

    Page sections

  • 5+

    UI components

  • Fully responsive

  • 3

    API integrations

What it does

  • 🏠 Hero & landing
  • 🏆 Achievements table
  • 📅 Events calendar
  • 📷 Instagram feed
  • 👥 Member spotlight
  • 📱 Responsive design
  • 🎨 Accordion UI
  • 🔗 Social links

Built with

  • HTML5
  • CSS3
  • JavaScript
  • Bootstrap 5
  • Figma
  • Instagram API
  • Google Calendar

Walkthrough

Scroll to follow the build, screen by screen.

The problem

The club lived in a group chat

Training times, results, and recruitment notices were scattered across chat history. New students had nowhere to look, and the committee re-posted the same information every semester. The site had to be the one place that answered those questions.

Recruitment

Answer "why should I join?" first

The section a prospective member reaches first is the one that has to earn their attention. Benefits, training commitment, and skill level are stated plainly rather than buried under club history.

Credibility

Results, sortable and current

An achievements table with sorting, alongside an events calendar. Competition results are the club’s strongest recruiting argument, so they get a section rather than a footnote.

Staying current

Let the feed do the updating

The club already posted to Instagram constantly, so the site embeds that feed rather than asking the committee to maintain a second stream. The page stays current without anyone remembering to update it.

The people

Members, not stock photography

A spotlight section with real members and their own words. It was the part the committee cared most about, and the part that makes the site feel like a club rather than a brochure.

nyp-tabletennis.com
Homepage Hero
Homepage Hero

01 / 05

The case study

Situation & Task

The Table Tennis CCA lacked an official online presence, limiting outreach and engagement with students. With no centralised platform for event schedules, achievements, or recruitment, information was scattered across group chats. I was tasked with building a responsive website from scratch to establish their digital platform.

Actions Taken

Designed and built the full CCA website from scratch — hero section with image carousel, achievements table with sorting, events calendar, Instagram feed integration via embed, member spotlight with testimonials, contact information with accordion UI, and social media links. Applied responsive design principles throughout for mobile compatibility.

Results Achieved

Provided the CCA with a centralised digital platform that consolidated all club information in one place. Improved visibility of activities and achievements, enhanced student engagement through a modern, user-friendly design, and established a scalable template that other CCAs could adopt.

Architecture

  1. 🎨 Figma Wireframes
  2. 🌐 HTML5 / CSS3 / JS
  3. 📐 Bootstrap 5 Grid
  4. 📱 Responsive Deploy

Static front-end built with semantic HTML5, CSS3 animations, and the Bootstrap 5 grid. Third-party embeds handle the Instagram feed and Google Calendar.

A slice of the code

carousel.jsjavascript
// Dynamic image carousel with auto-advance
const initCarousel = (container, interval = 4000) => {
  const slides = container.querySelectorAll('.slide');
  let current = 0;

  const showSlide = (index) => {
    slides.forEach((slide, i) => {
      slide.classList.toggle('active', i === index);
      slide.style.opacity = i === index ? 1 : 0;
    });
  };

  setInterval(() => {
    current = (current + 1) % slides.length;
    showSlide(current);
  }, interval);
};

Demo

What I took away

  • Building a complete website from wireframe to deployment with HTML5, CSS3, and JavaScript.
  • Implementing responsive design with the Bootstrap grid for a mobile-first approach.
  • Integrating third-party APIs and embeds (Instagram, Google Calendar).
  • Applying UX principles — visual hierarchy, whitespace, and user flow optimisation.
  • Creating reusable UI components like carousels, accordions, and tabbed navigation.
  • Gathering stakeholder requirements and iterating on CCA member feedback.