Event Ticket Management
Replaced legacy system, automated ticket request workflows for a global organization
The Business Challenge
The legacy event ticket management system had a poor user interface and incredibly basic form intake. The team had to supplement the system with Smartsheet and manual processes to manage business workflows. The developer who originally created it had limited UI/UX experience, resulting in a system where each year's entries accumulated on a list display — over 100 pages a user would have to click through with no filtering or search capability.
Discovery & Collaboration
The business stakeholder initially came requesting a refactor of the existing application — a common pattern. Instead of taking that request at face value, I pivoted the conversation: "Let's talk about what your current workflow actually is." I had the team describe their ideal system from scratch, as if no legacy constraints existed. This revealed that the current tool didn't match their evolved workflow — it matched what the workflow looked like five years ago.
I captured the full transcript of the discovery conversation, processed it individually, then used AI to generate a comprehensive project plan. The plan was iterated with team feedback until we landed on the right approach.
The Strategic Decision
Rather than refactoring the legacy codebase, I proposed a complete rebuild designed to complement the team's current workflow. The key insight was that the team needed a role-based system with distinct Requester, Approver, and Fulfiller workflows — not just a better form. The system needed to support internal and external facing custom forms, multiple approvers based on asset types, and integrated reporting.
The Build
Tech Stack: React 18 + Vite + TypeScript + Material-UI (frontend), Python 3.11 + Flask + SQLAlchemy (backend), PostgreSQL 15, Redis 7, Azure AD SSO (production auth).
Key Features:
- Role-based workflows: Requester, Approver, Fulfiller
- Approval routes and auto-approval rules
- Internal and external facing custom forms
- Select specific assets to present on custom forms (no backend recreation needed)
- Integrated reporting
- Multiple approvers based on asset types within forms
- Fulfillment tracking
- Audit logs
- Notification preferences
The Outcome
- Team fully deprecated Smartsheet and manual workflows for managing ticket requests
- Single platform for integrated reporting
- Multiple approvers based on asset types eliminated manual routing
- Reduced manual processing time and increased speed of fulfillment
- Better experience for both internal teams and external partners
- Demonstrated the value of discovery-driven development over simple refactoring