TurfArena is a modern full-stack sports venue booking platform that connects players, teams, tournament organizers, and venue owners through a fast, scalable, and AI-enhanced experience. It simplifies discovering sports facilities, booking available slots, managing tournaments, and engaging with the local sports community all from a single application.
Live Demo: turf-arena-gilt.vercel.app
Why TurfArena?
Finding and booking sports venues is often fragmented, requiring multiple phone calls, messaging apps, or manual scheduling. Venue owners also struggle with managing bookings, cancellations, and customer communication.
TurfArena addresses these challenges with:
- Real-time venue discovery
- Instant online booking
- AI-powered coaching assistant
- Tournament management
- Community engagement
- Venue owner dashboard
- Scalable cloud-native architecture
The Problem We’re Solving
Every weekend across India, thousands of turf grounds host football, cricket, basketball, and badminton matches. But behind the scenes, it’s chaos:
- Tournaments managed via WhatsApp groups and Google Sheets
- No way for players to track performance across seasons
- Turf owners handling bookings through phone calls and paper registers
- Double-bookings are common two teams show up for the same slot
- No centralized rankings or statistics for local sports communities
There’s no “operating system” for this ecosystem. We built one.
What is TurfArena?
TurfArena is a production-deployed platform with 22 API endpoints , 44 pages , and 9 DynamoDB tables serving four distinct user roles:
Each role gets a dedicated dashboard with role-specific navigation, data, and actions.
Key Features
1. Real-Time Turf Booking with Double-Booking Prevention
The core booking challenge: what happens when two people try to book the same slot at the exact same moment?
We solved this with Valkey (Redis-compatible cache) using atomic locking:
User clicks "Book 7 PM slot"
→ API checks Valkey: EXISTS slot:turf1:2026-06-25:19:00
→ If free: SET slot:turf1:2026-06-25:19:00 NX EX 300
→ Only ONE user gets the lock (NX = "set if Not eXists")
→ Lock holder's booking is written to DynamoDB
→ Slot marked as booked for 24 hours
→ Second user gets "423 Slot Locked" response
This prevents race conditions that DynamoDB alone cannot handle at the millisecond level.

Turf booking flow with calendar date picker, time slot selection, and real-time availability
👤 Player Experience
- Search nearby sports venues
- Browse available slots
- Book courts instantly
- View booking history
- Favorite venues
- GPS navigation
- Live match schedules
2. AI Coach (Amazon Bedrock — Nova Micro)
Every player gets a personal AI coach that analyzes their real statistics from DynamoDB:
How it works:
- Player requests coaching tips
- API queries TurfArena_PlayerStats table (composite key: playerId + sport)
- Builds a context prompt with actual numbers: wins, losses, goals, MVP awards
- Sends to Amazon Bedrock Nova Micro (us.amazon.nova-micro-v1:0)
- Returns personalized recommendations

AI-generated performance insights based on real player statistics from DynamoDB
AI capabilities:
- Performance analysis (strengths, weaknesses, weekly goals)
- Match predictions (win probability from real stats)
- Team builder (optimal formations, chemistry scoring)
- Auto-commentary (narrative from live match events)
- Strategy suggestions (counter-tactics based on opponent data)
The AI isn’t generic it’s grounded in the player’s actual performance data.

AI Coach providing personalized training recommendations and match predictions
🤖 AI Features
Powered by Amazon Bedrock.
- AI Sports Coach
- Training recommendations
- Match insights
- Personalized suggestions
- Natural language assistance
3. For Turf Owners
- Manage turf bookings with real-time slot availability (Valkey-powered)
- Track revenue, occupancy rates, and expenses
- Receive booking confirmations via EventBridge events
- View both live DynamoDB bookings and historical data

Owner dashboard showing real bookings (green DB badge) alongside historical data
🏢 Venue Owner Dashboard
- Manage venues
- Configure pricing
- Monitor bookings
- View occupancy analytics
- Handle cancellations
- Tournament management
4. Tournament Lifecycle Management
Full tournament flow from creation to results:
- Create : Organizer sets format (knockout/league/group), entry fee, prize pool
- Registration : Teams register via 3-step wizard (team info → roster → payment review)
- Brackets : Auto-generated based on registered teams
- Live Matches : Real-time score updates with event timeline
- Results : Final standings, player stats updated, leaderboards recalculated

Organizer dashboard with tournament analytics, revenue metrics, and team registrations from DynamoDB
DynamoDB operations per registration:
- PutItem → Registrations table (team details)
- UpdateItem → Tournaments table (atomic teamsJoined + 1)
- EventBridge → team.registered event (for notifications)
The atomic counter ensures accurate team counts even under concurrent registrations.
🏆 Tournament Management
- Create tournaments
- Team registration
- Fixture generation
- Match scheduling
- Live scores
- Leaderboards
5. GPS-Based Location Features
- Nearby turfs : Find turfs within X km using Haversine formula
- 200m geofencing : Players can only check in to a match if GPS confirms they’re within 200 meters of the venue
- Live tracking : Store player positions during match (foundation for future heatmaps)

Interactive map showing turf location with distance indicator
6. Community & Social
- Post match results, achievements, and highlights
- Like and comment on posts
- Achievement badges (MVP, Hat-trick, Clean Sheet, 50 Goals)
- Leaderboards with weekly/monthly/all-time rankings
Architecture
Architecture connection diagram
- DynamoDB box shows which API endpoint writes to which table
- Bedrock has a dashed line back to PlayerStats showing it reads stats before generating AI
- Legend box explains the 6-step data flow order
Why This Architecture?
Why Amazon DynamoDB?
Amazon DynamoDB was selected as the primary backend because it provides:
- Single-digit millisecond latency
- Automatic scaling
- High availability
- Flexible schema
- Serverless operation
- Excellent performance for booking workloads
Key entities include:
- Users
- Venues
- Bookings
- Tournaments
- Teams
- Reviews

AWS Console showing all 9 TurfArena tables with active status
DynamoDB Design
9 Tables with Purpose-Built Access Patterns
Advanced DynamoDB Features Used
- Atomic counters : SET teamsJoined = teamsJoined + :inc (no race conditions)
- List append : list_append(events, :newEvent) (add match events without overwriting)
- Composite keys : PlayerStats uses playerId + sport for per-sport queries
- Conditional writes : Tournament capacity check before registration
- 7 GSIs : Efficient queries without table scans
Why Vercel?
Vercel enables:
- Global edge deployment
- Fast page loads
- Seamless CI/CD
- Serverless API execution
- Optimized Next.js performance
Deployed on Vercel
TurfArena is deployed on Vercel with full GitHub integration every push to main triggers an automatic production build and deployment.
OBSERVABILITY
- Vercel Analytics, Structured logging, CloudWatch
- logging patterns and HTTP error codes for each
Valkey
- Valkey checks if slot is already booked (instant, <1ms)
- Real-time booking slot locking prevents double-bookings
- Writes to DynamoDB
- Marks slot permanently booked in Valkey cache
- Fires EventBridge notification
scalability
TurfArena is designed with cloud-native principles.
The architecture supports:
- Thousands of concurrent users
- Event-driven processing
- AI-assisted workflows
- Horizontal scaling
- Serverless backend services
Future enhancements may include:
- Online payments
- Real-time notifications
- Live venue availability
- Multi-city support
- International expansion
- Mobile applications
Business Model
Potential revenue streams include:
- Booking commissions
- Premium memberships
- Venue subscriptions
- Tournament hosting fees
- Sponsored listings
- Advertising partnerships
Event-Driven (Amazon EventBridge)
Amazon EventBridge acts as a central event bus. When something important happens in the app (booking confirmed, score updated, team registered), the API route publishes an event to the TurfArena-Events bus.
Every significant action publishes an event to EventBridge:
EventBridge is a decoupled event bus. Events are published successfully, but without rules + targets, nothing reacts to them. Adding new consumers (Lambda, SQS, SNS) requires zero code changes just add an EventBridge rule.
Tech Stack
Challenges & Solutions
Double-Booking Race Condition
Problem: Two users booking same slot within milliseconds both succeed. Solution: Valkey SET NX EX 300 atomic lock that only one request can acquire.
Turbopack Build Failure
Problem: Space in directory path (D:\github work) broke Next.js Turbopack. Solution: next build --webpack flag bypasses Turbopack entirely.
Silent DynamoDB Fallback
Problem: Vercel’s built-in DynamoDB integration overrode env vars with empty strings app silently used mock data. Solution: Removed integration, set env vars via CLI. Added AWS_ENABLED feature flag for explicit control.
Dark Theme Contrast
Problem: text-gray-600 on bg-white became invisible with dark theme. Solution: Audited all 44 pages, replaced with theme-aware CSS variables.
Real-Time Without WebSocket
Problem: DynamoDB doesn’t support push. Live scores needed instant updates. Solution: EventBridge for event bus + client-side polling (5s). WebSocket planned for Phase 2.
Cost
The entire production platform runs at zero cost for development and demos.
What’s Next
Future Enhancements
While TurfArena already provides a complete sports venue booking experience, there are several opportunities to further enhance the platform and support larger communities.
Future improvements include:
- Secure Online Payments with multiple payment gateways for seamless booking transactions.
- Real-Time Notifications using AWS event-driven services for booking confirmations, reminders, and tournament updates.
- Live Venue Availability with instant slot updates and dynamic scheduling.
- Advanced AI Features such as personalized training plans, match analysis, smart venue recommendations, and chatbot assistance powered by Amazon Bedrock.
- Analytics Dashboard for venue owners to monitor bookings, revenue, customer engagement, and business performance.
- Multi-City and Global Expansion with support for multiple regions, languages, currencies, and time zones.
- Native Mobile Applications for Android and iOS to provide a seamless mobile experience.
- Enhanced Tournament Ecosystem including automated fixture generation, live scoring, team rankings, and event management.
- Community Features such as player profiles, social interactions, team formation, reviews, and achievement badges.
- Enterprise-Scale Architecture with additional AWS services, caching, monitoring, and global content delivery to support millions of users while maintaining high availability and performance.
These enhancements will transform TurfArena from a booking platform into a comprehensive digital ecosystem for sports players, venue owners, and tournament organizers.
Conclusion
TurfArena demonstrates how modern cloud-native technologies can transform the sports venue booking experience into a scalable, intelligent, and user-friendly platform. By combining Vercel for high-performance frontend deployment with Amazon DynamoDB as the primary backend database, the application delivers fast, reliable, and scalable booking management while supporting real-world business needs.
Beyond venue reservations, TurfArena introduces AI-powered coaching, tournament management, community engagement, and venue owner tools, making it more than just a booking application. Its serverless architecture, event-driven design, and modular implementation provide a strong foundation for future enhancements such as secure online payments, live notifications, analytics, personalized recommendations, and global expansion.
Built for the H0: Hack the Zero Stack Hackathon , TurfArena showcases thoughtful full-stack engineering, practical AWS database integration, and a production-ready architecture capable of supporting thousands of users. It reflects our vision of making sports more accessible, organized, and connected through innovative cloud technologies while delivering a platform that is ready to grow into a sustainable and impactful business.
Try It
# Clone and run locally (no AWS needed — uses mock data)
git clone https://github.com/dineshrajdhanapathyDD/TurfArena.git
cd TurfArena
npm install
npm run dev
# Open http://localhost:3000
# Login as different roles:
# Player: customer@turf.com / customer123
# Organizer: organizer@turf.com / organizer123
# Owner: owner@turf.com / owner123
# Connect to AWS (optional)
# Set AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY in .env.local
npm run aws:init # Creates 9 tables + seeds demo data
npm run dev # Now connected to real DynamoDB
Built for the H0: Hack the Zero Stack with Vercel v0 and AWS Databases hackathon.
Judging Criteria Alignment
Technologies & Official Documentation:
Frontend & Backend
- Next.js — https://nextjs.org/docs
- TypeScript — https://www.typescriptlang.org/docs
- Next.js API Routes — https://nextjs.org/docs/app/building-your-application/routing/route-handlers
- Node.js — https://nodejs.org/docs/latest/api/
- V0 — What is v0? | v0 Docs
AWS Cloud Services
- Amazon DynamoDB — https://docs.aws.amazon.com/dynamodb/
- Amazon Bedrock — https://docs.aws.amazon.com/bedrock/
- Amazon EventBridge — https://docs.aws.amazon.com/eventbridge/
- AWS SDK for JavaScript v3 — https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/
Deployment
- Vercel — https://vercel.com/docs
Additional technologies
- Valkey — https://valkey.io/
- AWS CLI — https://docs.aws.amazon.com/cli/
- Vercel CLI — https://vercel.com/docs/cli
GitHub: github.com/dineshrajdhanapathyDD/TurfArena
Built for the #H0Hackathon
H0: Hack the Zero Stack with Vercel v0 and AWS Databases hackathon.
Vercel v0 was used to generate the initial UI components describe what you want, v0 generates production-ready React/Next.js code with Tailwind CSS, and deploy to Vercel in one click.
Built with ❤️ TurfArena — where every player has a profile, every match has a story, and every turf has a platform.
Team
- Dineshraj Dhanapathy — Dineshrajdhanapathy — Medium
- Abinaya SV — Abinaya SV — Medium
- Mariyam Usmani
Developed by Kiro — AI-powered development environment.
Thank you for taking the time to read my article! If you found it helpful, feel free to like, share, and drop your thoughts in the comments; I’d love to hear from you.
If you want to connect or dive deeper into cloud, AI and DevOps, feel free to follow me on my socials:
👨💻 DEV Community
🛡️Medium
🐙 GitHub
















Top comments (0)