Date: March 1, 2026
Project: Everato Event Management Platform
Goal: Ship-ready MVP with self-hosted deployment capability
Based on comprehensive analysis of the Everato codebase, the project is approximately 45-50% complete for a minimum viable product (MVP). The foundation is solid with good architecture, but critical user-facing features are missing.
Estimated effort to MVP: 6-8 weeks (240-320 development hours)
- ✅ Database Schema - Comprehensive, production-ready (users, events, tickets, bookings, payments, coupons)
- ✅ Admin Authentication - Super admin login system with JWT tokens
- ✅ Event Management Backend - CRUD operations, filtering, status management
- ✅ Frontend UI - Beautiful React UI with TailwindCSS (admin dashboard, event pages)
- ✅ Email Service - SMTP integration ready for notifications
- ✅ Build System - Production build pipeline with asset embedding
- ✅ Database Migrations - 12 migrations, proper schema evolution
- ❌ User Registration - Endpoint exists but commented out
- ❌ Ticket Booking System - No API endpoints or frontend
- ❌ Payment Processing - Models exist, no implementation
- ❌ QR Code Generation - Database field exists, no generation logic
- ❌ Email Notifications - Service ready, no triggers for booking confirmations
- ❌ QR Scanner for Admins - No attendee check-in functionality
| Feature Category | Backend | Frontend | Database | Status | Priority |
|---|---|---|---|---|---|
| Super Admin Auth | 95% | 90% | 100% | ✅ Working | P0 |
| User Registration | 70% | 80% | 100% | P0 | |
| User Login | 50% | 80% | 100% | P0 | |
| Event Creation | 100% | 95% | 100% | ✅ Working | P0 |
| Event Listing | 100% | 85% | 100% | ✅ Working | P0 |
| Ticket Types | 100% | 0% | 100% | ❌ Missing UI | P0 |
| Ticket Booking | 0% | 0% | 100% | ❌ Not Started | P0 |
| Payment Processing | 0% | 0% | 100% | ❌ Not Started | P0 |
| QR Code Generation | 0% | 0% | 100% | ❌ Not Started | P0 |
| Email Confirmations | 40% | N/A | N/A | P0 | |
| QR Scanner (Admin) | 0% | 0% | N/A | ❌ Not Started | P0 |
| Admin Dashboard | 60% | 70% | 100% | P1 | |
| Coupons | 100% | 0% | 100% | P1 | |
| Deployment Docs | 0% | N/A | N/A | ❌ Missing | P0 |
- ✅ Clients deploy on their own cloud
- ✅ Clients connect their own database
⚠️ Create super admin account (works, needs deployment docs)- ✅ Super admin can create events
- ❌ Users can register for events
- ❌ Users receive tickets via email
- ❌ Tickets have QR codes
- ❌ Admins can scan QR codes to track attendance
Effort: 1-2 days
Current State: Service exists but disabled in routes
Tasks:
- Uncomment registration route in
auth_handler.go:91 - Test user registration flow end-to-end
- Add email verification trigger
- Connect frontend registration form to backend
- Add form validation and error handling
- Test password hashing and security
Files to Modify:
internal/handlers/v1/api/auth_handler.go(uncomment line 91)www/src/pages/auth/register.tsx(connect to API)
Effort: 5-7 days
Current State: Database ready, zero implementation
Backend Tasks:
- Create
internal/handlers/v1/api/booking_handler.go - Create
internal/services/booking/directory with:booking_create.go- Create booking with ticket selectionbooking_validate.go- Validate availability and user limitsbooking_dto.go- Request/response DTOsbooking_get.go- Retrieve user bookings
- Add booking queries to
internal/db/queries/booking_query.sql:-- name: CreateBooking :one -- name: GetUserBookings :many -- name: GetBookingsByEvent :many -- name: UpdateBookingStatus :one
- Implement seat reservation logic with transaction handling
- Add booking validation (max tickets per user, availability check)
Frontend Tasks:
- Create
www/src/pages/booking.tsx- Booking flow page - Create
www/src/components/ticket-selector.tsx- Ticket quantity picker - Create
www/src/components/booking-summary.tsx- Order summary - Add booking API functions to
www/src/lib/api.ts - Create user bookings page (
www/src/pages/my-tickets.tsx)
API Endpoints Needed:
POST /api/v1/bookings/create
GET /api/v1/bookings/user/{userId}
GET /api/v1/bookings/{bookingId}
PUT /api/v1/bookings/{bookingId}/status
DELETE /api/v1/bookings/{bookingId}
Effort: 4-6 days
Current State: Payment models exist, no implementation
Decision Required: Choose payment gateway (Stripe/Razorpay/Manual)
Backend Tasks:
- Create
internal/handlers/v1/api/payment_handler.go - Create
internal/services/payment/directory:payment_create.go- Initialize paymentpayment_verify.go- Verify payment callbackpayment_webhook.go- Handle gateway webhooks
- Add payment queries to
internal/db/queries/payment_query.sql - Integrate payment gateway SDK (e.g., Stripe Go SDK)
- Implement webhook verification and signature validation
- Handle payment states: PENDING → DONE/FAILED/TIMEOUT
- Link payment success to booking confirmation
Frontend Tasks:
- Create
www/src/pages/checkout.tsx- Payment page - Integrate payment gateway UI (Stripe Elements/Razorpay Checkout)
- Add payment status polling
- Create payment confirmation page
- Handle payment failures with retry option
API Endpoints:
POST /api/v1/payments/create
POST /api/v1/payments/verify
POST /api/v1/payments/webhook
GET /api/v1/payments/{paymentId}/status
Environment Variables Needed:
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...Effort: 2-3 days
Current State: Database field exists, no generation
Backend Tasks:
- Add QR code library:
go get github.com/skip2/go-qrcode - Create
internal/services/ticket/directory:ticket_create.go- Create tickets after paymentticket_generate_qr.go- Generate unique QR codesticket_validate.go- Validate QR at check-in
- Generate unique ticket ID (UUID + booking ID + timestamp hash)
- Create QR code with ticket verification data
- Store QR code as base64 in database or file storage
- Add ticket creation trigger after successful payment
Frontend Tasks:
- Display QR code on ticket page
- Add download ticket as PDF/image option
- Show QR code in user's ticket list
QR Code Data Format:
{
"ticket_id": "uuid",
"event_id": "uuid",
"user_id": "uuid",
"booking_id": "uuid",
"ticket_type": "VIP",
"hash": "signature_for_verification"
}Effort: 2-3 days
Current State: Mailer service ready, no ticket email implementation
Tasks:
- Create email template:
templates/mail/ticket-confirmation.html - Add QR code embedding in email
- Create
internal/services/mailer/send_ticket_email.go - Trigger email after successful payment
- Include ticket details: event info, QR code, booking reference
- Add PDF ticket attachment option
- Test email delivery across providers (Gmail, Outlook)
Email Template Structure:
<!DOCTYPE html>
<html>
<head>Event Ticket - {{.EventTitle}}</head>
<body>
<h1>Your Ticket for {{.EventTitle}}</h1>
<p>Booking Reference: {{.BookingID}}</p>
<img src="data:image/png;base64,{{.QRCode}}" />
<p>Event Date: {{.EventDate}}</p>
<p>Venue: {{.Venue}}</p>
</body>
</html>Effort: 3-4 days
Current State: Not started
Backend Tasks:
- Create
internal/handlers/v1/api/checkin_handler.go - Create
internal/services/checkin/directory:validate_ticket.go- Verify QR code authenticitymark_attendance.go- Mark ticket as usedget_attendance.go- Get event attendance stats
- Add attendance tracking table (migration needed):
CREATE TABLE attendance ( id UUID PRIMARY KEY, ticket_id UUID REFERENCES tickets(id), event_id UUID REFERENCES events(id), checked_in_at TIMESTAMPTZ, checked_in_by UUID REFERENCES super_users(id) );
- Implement duplicate check-in prevention
- Add admin authorization check
Frontend Tasks:
- Create
www/src/pages/scanner.tsx- QR scanner page - Integrate camera library:
npm install @zxing/browser - Implement QR code scanning from camera
- Show ticket validation result (valid/invalid/already used)
- Add manual ticket ID entry fallback
- Create attendance dashboard for admins
API Endpoints:
POST /api/v1/checkin/validate
POST /api/v1/checkin/mark
GET /api/v1/checkin/event/{eventId}/stats
GET /api/v1/checkin/event/{eventId}/attendees
Effort: 1-2 days
Current State: Missing
Tasks:
- Create
DEPLOYMENT.mdwith:- System requirements (Go 1.24+, PostgreSQL 15+, Node.js)
- Step-by-step deployment guide
- Database setup instructions
- Environment variables reference
- Nginx/Apache configuration examples
- SSL/TLS setup guide
- Docker deployment option
- Create
docker-compose.production.yaml - Add health check endpoint documentation
- Create admin account setup script
- Document backup and restore procedures
Example Deployment Sections:
## Quick Deploy with Docker
1. Clone repository
2. Copy .env.example to .env
3. Configure database connection
4. Run: docker-compose -f docker-compose.production.yaml up -d
5. Access: http://your-domain.comEffort: 2-3 days
Tasks:
- Create user dashboard page showing booked events
- Display upcoming events with countdowns
- Show past events with ticket history
- Add profile editing functionality
Effort: 2-3 days
Current State: Many pages use mock data
Tasks:
- Replace mock data in
www/src/pages/dashboard.tsx - Replace mock data in
www/src/pages/events.tsx - Connect all event operations to real APIs
- Add proper loading states
- Implement error handling
Effort: 1-2 days
Tasks:
- Add coupon input in booking flow
- Validate coupon via API
- Show discount calculation
- Update backend to apply coupons
- Revenue tracking dashboard
- Ticket sales analytics
- User engagement metrics
- Event sharing
- Reviews and ratings
- Social login
- React Native app for attendees
- Mobile ticket wallet
- Days 1-2: Enable user registration and test authentication
- Days 3-7: Build ticket booking system (backend + frontend)
- Days 8-10: Integrate payment gateway (Stripe recommended)
- Days 11-13: QR code generation and storage
- Days 14-16: Email ticket delivery system
- Days 17-20: QR scanner for admin check-in
- Days 21-23: Replace mock data with real APIs
- Days 24-26: User dashboard and profile
- Days 27-28: Deployment documentation
- Days 29-30: Testing, bug fixes, production deployment
- Days 31-35: Coupon system UI
- Days 36-40: Advanced admin analytics
- Days 41-45: Final testing and optimization
- Backend Development: 120-150 hours
- Frontend Development: 80-100 hours
- Testing & QA: 30-40 hours
- Documentation: 10-20 hours
- Total: 240-310 hours (6-8 weeks for 1 developer)
- Optimal: 1 Full-stack developer (6-8 weeks)
- Faster: 1 Backend + 1 Frontend developer (3-4 weeks)
- Fastest: 2 Full-stack developers (2-3 weeks)
go get github.com/skip2/go-qrcode # QR code generation
go get github.com/stripe/stripe-go/v76 # Payment (if using Stripe)npm install @zxing/browser # QR scanner
npm install @stripe/stripe-js # Stripe integration
npm install @stripe/react-stripe-js # Stripe React components
npm install react-qr-code # QR display
npm install jspdf # PDF ticket generation- Uncomment user registration route
- Test user registration end-to-end
- Verify email workflow works
- Connect frontend registration form
- Create booking handler and service structure
- Write booking SQL queries
- Generate SQLC code
- Create basic booking API endpoint
- Create ticket selector component
- Build booking flow page
- Connect to booking API
- Add basic validation
Impact: High
Mitigation: Start with Stripe (best documentation). Use test mode. Budget 6 days.
Impact: Medium
Mitigation: Use signed tokens with timestamp. Implement rate limiting on validation endpoint.
Impact: Medium
Mitigation: Use established SMTP providers (SendGrid, AWS SES). Test with multiple email clients.
Impact: High
Mitigation: Use database transactions with row-level locking. Implement optimistic locking.
- Total Go Files: 30+ files
- Total Backend Services: 3 services (admin, event, user, mailer)
- Database Migrations: 12 migrations
- Frontend Pages: 8 pages (~5,000 lines)
- API Handlers: 6 handlers
- Database Tables: 9 tables (users, events, tickets, bookings, payments, etc.)
Before shipping to clients:
- All P0 features implemented and tested
- Environment variables documented
- Database migrations tested (up and down)
- Error handling and logging complete
- Security audit completed (SQL injection, XSS, CSRF)
- Production build tested
- Database backup strategy documented
- SSL/TLS configuration guide
- Monitoring and alerting setup
- Health check endpoints working
- DEPLOYMENT.md complete
- Admin setup guide
- Troubleshooting guide
- API documentation
- User manual
- Unit tests for critical paths
- Integration tests for booking flow
- Load testing (concurrent bookings)
- Security testing
- Cross-browser testing
Status: The project has a solid foundation but needs 6-8 weeks of focused development to reach MVP.
Critical Path:
- User Registration (1-2 days)
- Booking System (5-7 days)
- Payment Integration (4-6 days)
- QR Code Generation (2-3 days)
- Email Delivery (2-3 days)
- QR Scanner (3-4 days)
- Deployment Docs (1-2 days)
Total Critical Path: ~20-30 days of development
Success Probability: High (85%+)
- Good architecture ✅
- Database ready ✅
- Authentication working ✅
- Clear requirements ✅
- Manageable scope ✅
Next Step: Start with user registration (easiest win) and build towards booking system (most complex).
Report Generated: March 1, 2026
Analyst: OpenCode AI
Version: 1.0