HKS Ticket Shop

An online ticket shop for school football matches, featuring payments via KoFi Webhooks, automatic email generation with SMTP, and a QR code scanner with Firebase authentication to validate tickets.

Completed Node.js • Express • Firebase • KoFi Webhooks • SMTP

Key Features

Secure Payments via KoFi

Integrates with KoFi using webhooks for secure and reliable payment processing for football match tickets.

  • Real-time payment notifications
  • Secure webhook validation
  • Seamless user experience

Automated E-Ticket Delivery

Automatically generates and sends e-tickets to users' email addresses upon successful payment using SMTP.

  • Instant ticket delivery
  • Customizable email templates
  • Includes unique QR code

QR Code Ticket Scanning

A dedicated scanner interface to validate tickets at the event entrance using Firebase for real-time data lookup.

  • Fast and reliable scanning
  • Prevents duplicate entries
  • Real-time validation status

Personal Ticket Portal

Users can log in to view their purchased tickets and event details, secured by Firebase Authentication.

  • Secure user login
  • View and manage tickets
  • Accessible from any device

Project Gallery

Technical Challenges

PayPal Required a Registered Business

Solved
Problem:

I wanted to integrate PayPal, but their system required a registered company to activate full payment processing capabilities, which I didn’t have.

Solution:

As a flexible alternative, I integrated Ko-fi. I used Ko-fi’s webhook system to receive real-time payment confirmations, which then automatically triggered ticket creation on my server.

Ticket Emails Couldn’t Be Sent

Solved
Problem:

The system attempted to send e-tickets via SMTP over port 465, but all outgoing email attempts failed because the hosting provider (DigitalOcean) blocked SMTP ports by default.

Solution:

I migrated the project to Microsoft Azure, which does not block SMTP ports by default. After the migration, email delivery worked correctly, and I was able to securely send ticket confirmation emails.

Needed User Accounts for Ticket Access

Solved
Problem:

Initially, users could purchase tickets but had no way to view past purchases or manage their tickets in a centralized place, which could lead to abuse or a poor user experience.

Solution:

I implemented a user account system using Firebase Authentication. This allowed users to sign up and log in to a personal 'My Tickets' portal, where they could view all their purchased tickets and event details securely.