Overview
Built a comprehensive awards and nominations management platform for a prestigious Dubai-based government initiative. The system managed the full lifecycle of award nominations — from public submission through multi-round judging, scoring, and winner announcement.
The Problem
The client was running their awards process manually across email threads, PDF forms, and spreadsheets shared among a panel of 30+ judges across multiple countries. Collating scores, managing rounds, and communicating with nominees was a logistical nightmare with no audit trail.
What I Built
Public Nomination Portal — multi-step nomination forms with file uploads, auto-save, and bilingual support (English/Arabic) with RTL layout
Multi-round Judging Workflow — configurable judging rounds (Screening → Shortlist → Final Panel), with automated progression rules and round-close deadlines
Scoring & Deliberation Engine — per-criterion weighted scoring, judge conflict-of-interest declarations, and aggregate leaderboard visible only to admins
Judge Management — invite-only judge registration, assignment to categories, availability tracking, and secure document access per assigned nominees
Admin Control Panel — full CRUD on categories, criteria weights, timelines, and communications; bulk status updates and CSV export
Email Automation — transactional emails for submission confirmations, round advancement, shortlist notifications, and winner announcements via SendGrid
Tech Stack
Backend: .NET 9, SignalR, Qdrant VectorDB
CMS: Strapi V4
Frontend (Public): React v18, TypeScript, Tailwind CSS (RTL/LTR)
Frontend (Admin): React v18, MUI
AI: Claude, OpenAI Codex, RAG with Qdrant, Antigravity
Infrastructure: Azure AKS, Azure SQL, Blob Storage
Outcome
Successfully managed 1,200+ nominations across 8 award categories and coordinated 35 judges across 4 countries — all without a single manual spreadsheet.
0 likes · 4 views · May 14, 2026
Dubai government initiative: full-stack system for nominations, awards, multi-round judging, scoring, and nominee portals.