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

348 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Use this as the **production architecture upgrade prompt** in Trae.ai:
```text
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.
```