Back to projects
In Progress March 2026 — Present Built with Claude Code

Event Management Platform

Ruby on Rails 8 Next.js 16 React 19 TypeScript Tailwind CSS v4 PostgreSQL 16 Solid Queue Razorpay WhatsApp Business API AWS SES Zoom API S3 Recharts Docker NGINX GitHub Actions

A full-stack web application built to manage the end-to-end registration pipeline for events expecting 100-150 participants. Organizing a national event involves a complex participant journey, applications, interviews, approvals, payments, and logistics, all of which were previously managed through spreadsheets and manual WhatsApp messages. This platform unifies the entire lifecycle while giving organizers real-time visibility and control.

Key Highlights

  • Zero-password authentication across the entire platform, participants and admins both verify via OTP sent to WhatsApp and email
  • 7-step registration form with real-time validation, S3 presigned URL file uploads, and smart field dependencies (city autocomplete by state)
  • Atomic interview booking: slot reservation, Zoom meeting creation, status transition, and notification dispatch in a single database transaction with automatic rollback
  • WhatsApp broadcast system with 4-step creation wizard, audience filtering, template variable mapping, rate-limited batch sending (50/batch with 500ms delays), and real-time delivery analytics
  • Automated communications engine triggering WhatsApp and email notifications at every lifecycle stage with webhook-driven delivery tracking and per-message visibility
  • Role-based admin dashboard (super admin, admin, interviewer) with granular per-feature permission toggles, advanced filtering, bulk CSV export, and full audit logging

The Problem

Organizing a large-scale event involves a complex participant journey: applications, interviews, approvals, payments, and logistics, all of which were previously managed through spreadsheets and manual WhatsApp messages. We needed a unified platform that could handle the entire lifecycle while giving organizers real-time visibility and control.

Participant Experience

A 7-step registration form with real-time validation, file uploads (profile photos via S3 presigned URLs), and smart field dependencies like city autocomplete by state. OTP-based status checking lets participants enter their registration number, verify via WhatsApp/email OTP, and see their live application status. Approved candidates pick from available 15-minute Zoom interview slots directly on their status page with the ability to reschedule. Integrated Razorpay payment checkout activates only after admin approval. Confirmed attendees submit travel details (mode of transport, arrival/departure times) through a participant portal to help organizers coordinate pickup logistics.

Admin Dashboard

Role-based access control with OTP-only authentication and JWT sessions. Three roles (super admin, admin, interviewer) with granular per-feature permission toggles. Registration management includes advanced filtering by status, tags, state, and city, bulk CSV export, inline status transitions, and a unified activity timeline merging status history with communication logs. The interview system lets admins define availability blocks that auto-generate 15-minute slots, view scheduled interviews, join Zoom meetings, submit structured feedback (ratings and notes), and reschedule participants. Includes demographic breakdowns, registration statistics, and full audit logging of all admin actions.

WhatsApp Broadcast System

A bulk messaging system for filtered audiences using Meta-approved templates. Features a 4-step creation wizard: select template, define audience via filters or custom number lists, map template variables to registration fields or static text, then preview and send. Notification template management with auto-detection of parameter placeholders, supporting both header and body variables. Broadcasts are processed in batches of 50 with 500ms delays via background jobs, respecting Meta's API rate limits, and can be cancelled mid-send. Delivery analytics show a real-time timeline chart tracking sent, delivered, read, and failed states.

Communications Engine

Automated notifications via WhatsApp (Meta Business API) and email (AWS SES) triggered at every lifecycle stage: registration confirmation, interview invitation, booking confirmation, reminders (cron job, 1 hour before), interviewer daily summaries, approval/rejection, payment requests, and payment confirmation. Webhook-driven delivery tracking feeds WhatsApp read receipts and SES delivery notifications back into the platform, giving admins per-message visibility. All communications are logged with full lifecycle timestamps in a unified activity timeline per participant.

Architecture Highlights

Zero-password authentication across the entire platform: participants and admins both verify via OTP, eliminating password storage, reset flows, and credential stuffing risk. Atomic interview booking wraps slot reservation, Zoom meeting creation, status transition, and notification dispatch in a single database transaction with automatic rollback on failure. Broadcast rate limiting processes bulk WhatsApp sends in batches of 50 with 500ms delays via Solid Queue background jobs (database-backed, no Redis dependency). Webhook-driven state machine feeds WhatsApp delivery receipts and SES notifications back through webhooks, updating communication logs in real time and powering the delivery analytics dashboard.