Files
eventsphere/srs.md
2026-04-25 21:57:48 +01:00

6.4 KiB
Raw Permalink Blame History

Use this as the production architecture upgrade prompt in Trae.ai:

Upgrade the existing EventSphere starter implementation into a production-grade, multi-tenant SaaS architecture.

Strictly preserve the current UI/UX design system, layout, colors, typography, spacing, cards, sidebar, dashboard structure, and enterprise minimal look. Do not redesign the product.

ARCHITECTURE TARGET

Frontend:
- Next.js 14 App Router
- TypeScript
- Tailwind CSS
- Server/client component separation
- Central API client
- Route guards
- Role-aware navigation
- Form validation
- Loading, empty, and error states
- Pagination, filtering, search, export

Backend:
- NestJS
- PostgreSQL
- Prisma ORM
- Redis
- BullMQ queues
- JWT access/refresh authentication
- RBAC permissions
- Multi-tenant isolation
- Swagger/OpenAPI
- Global validation pipe
- Global exception filter
- Structured logging
- Audit logs
- Rate limiting
- Webhook security

Infrastructure:
- Docker Compose for local and production
- Traefik reverse proxy
- Lets Encrypt TLS
- PostgreSQL persistent volume
- Redis persistent volume
- API worker service
- Health checks
- Backup jobs
- Environment templates
- Production README

CORE SERVICES TO BUILD

1. Authentication Service
- Login
- Refresh token
- Logout
- Password reset
- User invitation
- Tenant-aware users
- Role assignment

2. Tenant Service
- Tenant creation
- Tenant settings
- Branding configuration
- Domain/slug support
- Feature flags

3. Event Service
- Event CRUD
- Event landing page configuration
- Ticket types
- Registration rules
- Approval workflow settings
- Event publishing status

4. Attendee Service
- Attendee profile
- Invitee import
- RSVP tracking
- Registration status
- Tags and segmentation
- Attendance history

5. Registration Service
- Public registration
- Dynamic form submission
- Duplicate detection
- Approval queue
- Confirmation workflow
- Ticket assignment

6. QR Code / Check-in Service
- Secure QR generation
- Unique ticket token
- QR validation endpoint
- Live check-in
- Duplicate scan prevention
- Check-in logs

7. Communication Service
- Email templates
- SMS templates
- WhatsApp templates
- Africas Talking integration
- SMTP/SendGrid-ready abstraction
- Automated confirmation
- Reminder scheduling
- Delivery logs

8. Payment Service
- Paystack payment initialization
- Paystack webhook verification
- Payment status update
- Paid ticket registration
- Transaction history
- Refund-ready structure

9. CRM Pipeline Service
- Lead creation from registrations
- Deal stages
- Pipeline board
- Activity notes
- Source attribution
- Opportunity value
- Conversion reporting

10. Workflow Engine
- Trigger: registration created
- Trigger: registration approved
- Trigger: payment successful
- Trigger: event reminder due
- Actions:
  - send email
  - send SMS
  - send WhatsApp
  - generate QR
  - update CRM stage
  - notify admin

11. Calendar Routing Forms
- Routing form builder
- Availability slots
- Meeting booking
- Internal calendar view
- Automated booking confirmation

12. Reporting Service
- Dashboard metrics
- Registration trend
- RSVP trend
- Source conversion
- Payment revenue
- Check-in analytics
- CRM conversion report
- Export CSV/XLSX

DATABASE REQUIREMENTS

Use Prisma and create a clean schema for:

- Tenant
- User
- Role
- Permission
- UserRole
- Event
- EventPage
- TicketType
- Invitee
- Attendee
- Registration
- RSVP
- Form
- FormField
- FormSubmission
- QRCode
- CheckIn
- CommunicationTemplate
- CommunicationLog
- Payment
- PaystackWebhookEvent
- CRMLead
- CRMDeal
- CRMActivity
- Workflow
- WorkflowTrigger
- WorkflowAction
- CalendarRoutingForm
- CalendarSlot
- Booking
- AuditLog
- IntegrationSetting

Every tenant-owned table must include:
- tenantId
- createdAt
- updatedAt

SECURITY REQUIREMENTS

Implement:
- Tenant isolation guard
- Permission guard
- JWT auth guard
- Refresh token rotation
- Password hashing with bcrypt
- Input validation DTOs
- Request rate limiting
- Webhook signature verification
- Audit logging for sensitive actions
- Secure environment handling
- No secrets committed

API REQUIREMENTS

Create REST APIs under:

/api/v1/auth
/api/v1/tenants
/api/v1/events
/api/v1/attendees
/api/v1/invitees
/api/v1/rsvps
/api/v1/registrations
/api/v1/check-ins
/api/v1/qr-codes
/api/v1/forms
/api/v1/workflows
/api/v1/communications
/api/v1/payments
/api/v1/crm
/api/v1/calendar
/api/v1/reports
/api/v1/settings
/api/v1/integrations

FRONTEND REQUIREMENTS

Fully connect all existing pages to the backend:

Admin pages:
- Dashboard
- Events
- Event Details
- Attendees
- Invitees
- RSVPs
- Registrations
- Live Check-in
- QR Codes
- Forms & Workflows
- Calendar
- Communications
- Email Campaigns
- WhatsApp Campaigns
- Payments
- CRM Pipeline
- Contacts / Leads
- Reports
- Settings
- Integrations

Public pages:
- Event landing page
- Event details page
- Registration page
- Ticket selection page
- Payment page
- Confirmation page
- E-ticket page
- Live event page

UI BEHAVIOR REQUIREMENTS

For every page:
- Use existing AdminShell/PublicShell layout
- Use existing Card/Button visual style
- Add loading states
- Add empty states
- Add error states
- Add create/edit/view modals where needed
- Add search/filter/export where relevant
- Preserve IBM/Cisco/Dell-style clean enterprise minimalism

QUEUE/JOBS REQUIREMENTS

Use BullMQ workers for:
- Email sending
- SMS sending
- WhatsApp sending
- QR generation
- Reminder scheduling
- Payment webhook processing
- Workflow actions
- Report generation

DEPLOYMENT REQUIREMENTS

Create:

- docker-compose.yml
- docker-compose.prod.yml
- Dockerfile for web
- Dockerfile for api
- Dockerfile for worker
- Traefik config
- .env.example
- .env.production.example
- database migration scripts
- seed script
- backup script
- restore script
- production README

Recommended domains:
- app.eventsphere.local or app.yourdomain.com
- api.eventsphere.local or api.yourdomain.com

QUALITY REQUIREMENTS

Before finishing:
- Run TypeScript checks
- Run lint
- Run build
- Confirm all routes compile
- Confirm all APIs return valid responses
- Confirm frontend pages do not use hardcoded mock data except seed/demo mode
- Confirm no TODO placeholders remain
- Confirm Docker compose boots successfully

FINAL DELIVERY

Deliver the final production-ready repository with:

- Complete source code
- Prisma schema
- API modules
- frontend pages
- worker queues
- integrations
- deployment files
- documentation
- seed data

This must be a real production SaaS platform, not a demo.