Features

[!NOTE] Feature status reflects the current repository implementation and canonical docs.

Feature matrix

FeatureStatusDescriptionHow it worksAccess model
Event creationLiveCreate public event pages with custom questionsPOST /api/events and organiser UIFree
Capacity managementLiveTrack confirmed seats and limitsconfirmedCount vs capacity on EventFree
Waitlist automationLiveOverflow registrations go to waitliststatus = waitlist with waitlistPositionFree
Dynamic slot promotionLivePromote waitlisted users after capacity increasePATCH /api/events/[slug]/capacityFree
Organiser dashboardLiveOperations view for events, stats, activity/dashboard + /api/dashboard/statsFree
Real-time notificationsLiveIn-app notifications for key eventsNotification model + API endpointsFree
AnalyticsLiveEvent-level and dashboard-level metrics/api/events/[slug]/analytics + dashboard statsFree
PWA supportLiveInstallable web app shell and offline supportmanifest + service worker integrationFree
Payment integrationLiveBilling for report download bundlesPaystack checkout and verify flowsPaid only for report bundles
KDPA-aligned controlsLiveConsent fields and data expiry workflowsconsent flags + cron expiry + privacy docsFree
SMS and WhatsApp notificationsComing soonNon-email communication channelsNot yet implementedN/A
QR check-in workflow hardeningComing soonExpanded check-in operationsverify-ticket and check-in primitives existN/A

Feature details

Event Creation

Organisers create events with title, description, slug, optional deadline, optional capacity, and custom registration questions.

Capacity Management

The Event model stores capacity, confirmedCount, and waitlistCount so organisers can track event pressure in one place.

Waitlist Automation

When confirmedCount >= capacity, new registrations are inserted as status waitlist with incremental waitlistPosition.

Dynamic Slot Promotion

When capacity increases, the system selects waitlisted registrations in ascending waitlistPosition and confirms up to added slots.

Organiser Dashboard

Dashboard stats include total events, total registrations, active events, waitlist exposure, upcoming events, and recent activity.

Real-time Notifications

Registration actions and capacity milestones create Notification records for organisers.

Analytics

Analytics endpoints and EventView tracking provide conversion and activity metrics.

PWA

The app ships with PWA capabilities for installability and offline-friendly behavior.

Payment Integration

Paystack is used for report-download purchases and verification. Stripe is not the active billing provider in this repository.

KDPA-aligned controls

Registration records include consentTransactional and consentMarketing flags. Data expiry and privacy pathways are implemented through scheduled routes and policy surfaces.