Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[Backend] Build Production-Grade RSVP & Registration System (Solo/Team, Validation, Approval Workflow, Secure Data)

Ouverte
#7 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
20/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Calme
Stack technique
typescript

Piste de recherche

Start by mapping the proposed /controllers, /services, /models, /validators, and /utils structure to the existing repository, then identify the entry points for the listed RSVP and admin endpoints. Define the data, validation, workflow, security, export, and test boundaries before implementing; done means all acceptance criteria and unit, integration, and security tests are covered.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

We are building a complete RSVP & registration system for events like:

hackathons
meetups
workshops
competitions
conferences

Core Flow

User opens RSVP page
→ fills form (solo/team)
→ submits registration
→ backend validates + saves
→ status = Pending / Waitlisted
→ admin reviews
→ Approved / Rejected
→ participant check-in

🎯 Goals

System must be:

  • Flexible (supports all event types)
  • Secure (PII + Aadhaar handling)
  • Scalable (10K+ registrations/event)
  • Configurable (custom questions, rules)
  • Production-ready (validation + workflows)

🧱 CORE MODULES


1️⃣ RSVP CONFIG SYSTEM


Purpose

Each event has its own configuration.


Endpoint

GET   /api/v1/events/:eventId/rsvp-config
PATCH /api/v1/events/:eventId/rsvp-config

Features

enable/disable RSVP
start/end time window
allow solo/team
min/max team size
capacity limit
waitlist toggle
duplicate policy
custom questions


2️⃣ REGISTRATION SYSTEM


Endpoint

POST /api/v1/events/:eventId/rsvp

Modes

Solo
Team

Backend Flow

validate payload (Zod)
→ load RSVP config
→ enforce rules
→ check duplicates
→ validate team logic
→ encrypt sensitive data
→ generate registrationNumber
→ assign status (Pending/Waitlisted)
→ save
→ audit log


3️⃣ VALIDATION SYSTEM (CRITICAL)


Must Validate


Basic
eventId required
leader fullName/email/mobile required
consents must be true

Team Rules
teamName required
teamSize >= 2
members = teamSize - 1

Solo Rules
teamSize = 1
members = []

Identity
  • email format
  • mobile format (E.164)
  • Aadhaar = 12 digits (if required)


4️⃣ DUPLICATE & FRAUD PROTECTION


Prevent

duplicate email in same event
duplicate mobile
duplicate collegeId (optional)
duplicate inside same payload

Advanced

  • block disposable emails
  • OTP verification (optional)
  • IP tracking


5️⃣ RSVP WINDOW & CAPACITY


Rules

reject before start
reject after end

Capacity Handling

if full → Waitlisted
else → Pending


6️⃣ STATUS WORKFLOW


Lifecycle

Pending → Approved → CheckedIn
Pending → Rejected
Pending → Waitlisted → Approved
Approved → Cancelled

Rules

  • only Approved → check-in
  • rejected cannot check-in


7️⃣ ADMIN SYSTEM


Endpoints

GET   /api/v1/events/:eventId/registrations
GET   /api/v1/events/:eventId/registrations/:id
PATCH /api/v1/events/:eventId/registrations/:id/approve
PATCH /api/v1/events/:eventId/registrations/:id/reject
PATCH /api/v1/events/:eventId/registrations/:id/waitlist
PATCH /api/v1/events/:eventId/registrations/:id/check-in
GET   /api/v1/events/:eventId/registrations/export

Features

  • search
  • filter (status, type)
  • pagination
  • CSV export


8️⃣ DATABASE DESIGN


Collections

EventRSVPConfig
EventRegistration

Indexes (IMPORTANT)

eventId
status
leader.email
leader.mobile
createdAt


9️⃣ SENSITIVE DATA SECURITY 🔐


Aadhaar Handling

encrypt before storing
store last4 only
never expose full value

Compliance

  • consent version stored
  • data masking in responses
  • audit logs for export


🔟 CUSTOM QUESTIONS SYSTEM


Supported Types

short text
long text
select
multi-select
number
file upload
url

Validation

  • required questions enforced
  • type-safe answers


1️⃣1️⃣ EVENT INTEGRATION


System connects with:

Event system
Community system
Member system

Example

  • approved RSVP → create Member


1️⃣2️⃣ AUDIT LOGGING


Track

registration_created
status_changed
approved/rejected
export_downloaded
checkin_done


1️⃣3️⃣ ANALYTICS


Metrics

total registrations
approved count
rejected count
waitlist count
check-in rate


1️⃣4️⃣ ERROR HANDLING


Format

{
  "success": false,
  "message": "Team size invalid"
}


1️⃣5️⃣ RATE LIMITING


RSVP submit → 5/min/IP


1️⃣6️⃣ TESTING


Unit

  • validation logic
  • duplicate checks

Integration

  • full RSVP flow
  • admin actions

Security

  • data masking
  • rate limit


1️⃣7️⃣ EDGE CASES


duplicate registration
invalid team size
expired RSVP window
capacity overflow
invalid Aadhaar
CSV export misuse


⚙️ PERFORMANCE


  • indexed queries
  • pagination
  • async processing


🌍 ENVIRONMENT


DEV
STAGING
PROD


📦 ARCHITECTURE


/controllers
/services
/models
/validators
/utils


✅ ACCEPTANCE CRITERIA


✔ RSVP submission works
✔ Solo + Team logic works
✔ Validation enforced
✔ Duplicate protection active
✔ Admin approval system works
✔ Check-in works
✔ Aadhaar securely handled
✔ Custom questions supported
✔ Export works
✔ Fully tested


🔥 FINAL SUMMARY

This system behaves like:

Devfolio / HackerEarth / Eventbrite backend
Langage dominant
TypeScript
Étoiles
1
Forks
0
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Aucun modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NexGenStudioDev/CommDesk-Backend

Toutes les issues de NexGenStudioDev/CommDesk-Backend

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.