A hackathon needs more than an event brochure. Participants need to understand industry challenges, follow the schedule, organise teams and submit work. Organisers need these steps to connect through a shared digital entry point. We delivered visual design, interaction development and API integration around the actual event journey.
Our scope covered the complete website design and development: information architecture, event visuals, responsive interfaces, motion, progress reporting, submissions, file storage, project presentation, judge assignment, score aggregation and voting. The frontend works with Cloudflare Workers, D1, R2 and Workers AI to connect participant experiences with the organising team’s daily operations.
This project expresses our approach to digital product design: information, behaviour and systems belong together. Technology creates visual impact while clarifying complex workflows, making large-file delivery visible and preserving usability across devices.
SYSTEM FLOW
- React frontend & real-time interaction
- Workers business API
- D1 data & R2 files
- Judging, operations & AI translation
01 / Frontend architecture: shared state for presentation and workflows
The interface uses React 18.3.1 with the DCLogic template runtime. Templates mount as React components, with state / setState driving form fields, view changes and feedback. URL hashes locate views such as challenges and submissions, connecting the event narrative with ongoing participant tasks.
- UI runtime
- React / ReactDOM 18.3.1 · DCLogic
- Views & preferences
- Hash-based view selection · language preference in localStorage
02 / Real-time visuals: particle systems and WebGL
The Firebird scene uses Three.js for real-time particles, with BufferGeometry, typed arrays and custom particle attributes organising the scene data. Shader-driven visuals and an EffectComposer / UnrealBloomPass bloom pipeline extend the brand into a dynamic scene. The configured scene combines 22,000 primary sampled particles and 460 embers to give the event identity a sense of spatial depth.
- Rendering engine
- Three.js 0.128.0 · WebGL
- Scene composition
- 22,000 primary sampled particles + 460 ember particles
- Post-processing
- EffectComposer · UnrealBloomPass bloom
03 / Motion orchestration: scrolling as part of the experience
GSAP and ScrollTrigger tie typography, sections and parallax to scroll progress. Lenis supplies smooth scrolling and synchronises ScrollTrigger updates. IntersectionObserver triggers viewport reveals and count-up effects, coordinating large-scale scenes with local feedback.
- Scroll animation
- GSAP / ScrollTrigger 3.12.5
- Smooth scrolling
- Lenis 1.0.42 · synchronised scroll events
- Accessibility
- Respects the prefers-reduced-motion preference
04 / Rendering budget: resource constraints in the implementation
The scene caps pixel density and monitors frame time. Persistent slow frames disable bloom while retaining the base scene, and scene updates are skipped when the page is hidden. A static Canvas 2D drawing path is also included. These choices put resource awareness into the rendering logic, adapting visual effects to device conditions and page visibility.
- Pixel ratio cap
- devicePixelRatio capped at 1.4
- Adaptive post-processing
- Accumulated frames above 42 ms trigger bloom disablement
05 / API separation: interface and business services
A JavaScript Worker handles requests through its Fetch entry point, routing event operations by HTTP method and path. The production domain supports same-origin /api routing. JSON APIs serve frontend submissions and data retrieval, Worker-generated HTML serves administrative views, and CSV responses support exports. Interface interactions, data operations and event administration share one backend implementation.
- Runtime & protocols
- Cloudflare Workers · Fetch API · HTTPS
- Interfaces & outputs
- Same-origin API · JSON · server-rendered HTML · CSV
06 / Data architecture: event state and project records
Cloudflare D1 stores structured event data for submissions, progress, judges, assignments, scores, public curation, votes and test flags. The Worker uses prepare / bind for parameterised SQL. R2 stores file contents while D1 stores their object keys. Resubmissions retain submission identifiers and history, preserve earlier values for blank fields and restrict which material fields may be updated, keeping project updates connected to judging references.
- Structured data layer
- Cloudflare D1 · parameterised SQL
- Data / file separation
- D1 stores metadata and object keys · R2 stores files
- Resubmission handling
- Retained project ID · material-field updates · history reconciliation
07 / File architecture: R2 signed uploads and temporary access
Cloudflare R2 stores project files. The Worker validates signing requests using team, project, material kind, filename and declared size, then implements AWS Signature V4 with Web Crypto SHA-256 / HMAC to generate S3-compatible temporary upload URLs. The browser uploads directly to R2 via XMLHttpRequest PUT, then submits object keys and project metadata to D1. Downloads also use time-limited signatures, separating transfer, business records and access authorisation.
- Object storage & signing
- Cloudflare R2 · S3-compatible API · AWS Signature V4
- Upload signature lifetime
- 3,600 seconds / 60 minutes
- Upload flow
- Request signature → PUT upload to R2 → file references in D1
- Transfer feedback & validation
- Progress, speed and ETA · file-kind and declared-size validation
08 / Judging and operations: assignments to ranking views
Judge-to-project assignments are stored in a mapping table and configured through an administrative matrix. The Worker writes assignments to D1 in batches of 40. Scores are organised by round, judge and project, with ON CONFLICT updates for dimensions, total scores, notes and timestamps to support repeated saves. Administrative features include publication controls, finalist flags, awards and cover management, progress summaries, rankings, participant-list preparation and CSV exports.
- Score record key
- Round × judge × project · ON CONFLICT updates
- Assignment writes
- D1 batch · 40 records per batch
- Operational outputs
- Project curation · ranking views · CSV exports
09 / Access and consistency: server-side rules
Administrative views use HTTP Basic authentication, with configuration such as the administrator password held in Cloudflare Secrets. Judging validates judge codes and supports an additional password check. Voting enforces the deadline server-side and uses hashed identifiers, composite database keys and a per-network, per-project time-window limit to handle repeated records. Historical votes are reconciled after project updates to keep the public presentation connected to the project record.
- Identity & configuration
- Admin authentication · judge-code validation · Cloudflare Secrets
- Vote record handling
- SHA-256 identifiers · composite keys · server-side deadline and frequency checks
10 / AI and languages: cross-regional judging and exchange
The interface supports Simplified Chinese, Traditional Chinese and English, persisting the language preference in localStorage. Server-side translation handles dynamic project descriptions and judging content. The source configures Cloudflare Workers AI’s @cf/meta/m2m100-1.2b model for Chinese-to-English translation and includes an optional Google Cloud Translation adapter. The current deployment has a confirmed Workers AI binding. Translation assists understanding across regions.
- Interface languages
- Simplified Chinese · Traditional Chinese · English
- AI translation configuration
- Workers AI · @cf/meta/m2m100-1.2b
- Application context
- Dynamic project descriptions · Chinese / English judging support
Organisational involvement and project significance
Founder Ma Ye participated in preparing and organising the event as an HKUST alumnus, Vice-President of the HKUST Mainland Alumni Association and Co-Chair of the organising committee. MY CREATIVE CENTER translated innovation-community needs into an interactive system for participation, submissions and collaboration—a concrete example of our work connecting design, technology and innovation practice.
Visit the Firebird Hackathon website ↗Event scale and organising roles: official HKUST recap