<- Back to projects

Mora 9s 2026

Full-stack tournament platform for the Mora 9s field hockey event — public fan site with live updates, plus a protected admin dashboard for teams, matches, results, and scorers.

React Node.js Express MySQL Socket.IO Tailwind JWT
Mora 9s Screenshot 1
Mora 9s Screenshot 2
Mora 9s Screenshot 3
Mora 9s Screenshot 4
Mora 9s Screenshot 5
Mora 9s Screenshot 6
Mora 9s Screenshot 7
Mora 9s Screenshot 8
Mora 9s Screenshot 9
Mora 9s Screenshot 10
Mora 9s Screenshot 11

#Overview

Mora 9s 2026 is the official web platform for the University of Moratuwa field hockey tournament. Fans get a public site for teams, fixtures, results, points tables, and top scorers — with real-time Socket.IO updates. Organizers use a separate JWT-protected admin app to manage the full tournament lifecycle.

#Public Site

  • 🏒 Browse teams, groups, and match schedules
  • 📊 Live results, points tables, and top scorers
  • ⚡ Real-time refresh via Socket.IO when admins update data
  • 📱 Responsive React + Tailwind UI for fans on any device

#Admin Dashboard

  • 🔐 JWT authentication with bcrypt password hashing
  • 👥 Manage groups, teams, and player rosters
  • 🗓️ Create and update matches and fixtures
  • 🎯 Record results and goal scorers
  • 📡 Changes push live to the public site

#Architecture

mora9s-2026/
├── user-mode/
│   ├── client/     # Public React site (Vite + Tailwind)
│   └── server/     # REST + Socket.IO API (:4000)
├── admin-mode/
│   ├── client/     # Admin React dashboard
│   └── server/     # REST + JWT auth API (:5000)
└── database/       # MySQL schema & migrations

Both APIs share the same MySQL database. Production typically runs frontends on Vercel and APIs on AWS EC2 (Nginx, HTTPS, PM2), with GitHub Actions for CI/CD.

#Tech Stack

Frontends

  • React 18 + Vite 5
  • Tailwind CSS
  • React Router

Backends

  • Node.js + Express
  • Socket.IO — live updates
  • JWT + bcrypt — admin auth

Data & Deploy

  • MySQL 8
  • Vercel — frontends
  • AWS EC2 + Nginx + PM2
  • GitHub Actions CI