Overview
Implement a complete member creation and onboarding system for CommDesk that supports:
- Dashboard member creation
- External onboarding via API key
- Secure activation workflow
- Bulk member import
- Role & permission management
- Audit logging
- Email-based activation
The goal is to make CommDesk the central identity and onboarding system for communities.
🎯 Goals
Create a single, unified member onboarding pipeline that allows communities to:
- Add members manually from the desktop dashboard
- Onboard members from external websites or hackathon portals
- Invite volunteers, mentors, judges, and sponsors
- Activate accounts securely
- Manage member roles and permissions
- Track onboarding analytics
🧩 Core Concepts
User vs Member
CommDesk separates authentication and community membership.
User
- Login account
- Email + password
- Can belong to multiple communities
Member
- Represents a user's role inside a specific community
Example:
User
email: john@example.com
Member
community: Apex Circle
role: Mentor
🔄 Member Status Lifecycle
On Boarding
↓
Active
↓
Inactive
↓
Suspended
↓
Banned
Default status when created:
Meaning the member must activate their account before access.
🛠 API Design
Unified Member Creation API
This API supports two authentication methods:
1️⃣ Dashboard Creation
Used by:
- Community owner
- Organizers
- Admins
Authentication:
Authorization: Bearer JWT
2️⃣ External Onboarding
Used by:
- Community websites
- Hackathon registration systems
- Event landing pages
Authentication:
Authorization: Bearer API_KEY
Example:
Authorization: Bearer cd_live_abc123
📥 Request Payload
Example:
{
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"primaryRole": "Mentor",
"location": "Berlin",
"skills": ["React", "Node"],
"areaOfInterest": ["MENTORSHIP"],
"internalNotes": "Speaker for React workshops",
"accessLevel": {
"internalDashboard": true,
"comunityForum": true,
"adminControls": false,
"superAdmin": false
}
}
⚙ Backend Workflow
validate request
identify community
check duplicate email
create user account if needed
create member record
set membershipStatus = On Boarding
generate activation token
send onboarding email
log audit event
🔐 Account Activation
Members must activate their account before becoming active.
Activation email example:
https://commdesk.app/activate?token=xxxxx
Activation API
POST /api/v1/auth/activate-member
Request:
{
"token": "activation_token",
"password": "NewSecurePassword"
}
Flow:
verify token
hash password
activate account
membershipStatus → Active
📦 Bulk Import
Support CSV onboarding for large communities.
Endpoint:
POST /api/v1/members/import
Example CSV:
firstName,lastName,email,role
John,Doe,john@email.com,Volunteer
Alice,Lee,alice@email.com,Mentor
🔑 API Key System
Communities can generate API keys for integrations.
Example key:
Schema:
ApiKey
{
keyHash
communityId
permissions
createdBy
active
}
Example permissions:
member:create
member:read
event:create
hackathon:register
🧾 Member Schema
Member
{
_id
communityId
userId
firstName
lastName
email
primaryRole
location
skills
areaOfInterest
internalNotes
membershipStatus
accessLevel
profilePhotoUrl
onboardingSource
createdBy
createdAt
}
👤 User Schema
User
{
_id
email
passwordHash
emailVerified
createdAt
}
📊 Analytics
Track onboarding metrics.
Example metrics:
- Members added
- Members activated
- API onboarding
- Bulk imports
Endpoint:
🔒 Security Requirements
Implement:
- Rate limiting (100 onboarding requests/hour per API key)
- Input validation using Zod
- Duplicate email prevention
- API key permission checks
- Audit logging
📜 Audit Logging
Track actions:
member_created
member_invited
member_activated
member_role_changed
member_removed
Schema:
AuditLog
{
actorId
action
communityId
metadata
createdAt
}
🖥 Desktop Integration (Tauri)
Member system will power the following screens:
- Add Member page
- Member List
- Invitation Tracking
- Role Management
📧 Email Templates
Required templates:
member_invitation
account_activation
password_reset
member_role_update
Recommended providers:
- Resend
- SendGrid
- Amazon SES
✅ Acceptance Criteria
Overview
Implement a complete member creation and onboarding system for CommDesk that supports:
The goal is to make CommDesk the central identity and onboarding system for communities.
🎯 Goals
Create a single, unified member onboarding pipeline that allows communities to:
🧩 Core Concepts
User vs Member
CommDesk separates authentication and community membership.
User
Member
Example:
🔄 Member Status Lifecycle
Default status when created:
Meaning the member must activate their account before access.
🛠 API Design
Unified Member Creation API
This API supports two authentication methods:
1️⃣ Dashboard Creation
Used by:
Authentication:
2️⃣ External Onboarding
Used by:
Authentication:
Example:
📥 Request Payload
Example:
{ "firstName": "John", "lastName": "Doe", "email": "john@example.com", "primaryRole": "Mentor", "location": "Berlin", "skills": ["React", "Node"], "areaOfInterest": ["MENTORSHIP"], "internalNotes": "Speaker for React workshops", "accessLevel": { "internalDashboard": true, "comunityForum": true, "adminControls": false, "superAdmin": false } }⚙ Backend Workflow
🔐 Account Activation
Members must activate their account before becoming active.
Activation email example:
Activation API
Request:
{ "token": "activation_token", "password": "NewSecurePassword" }Flow:
📦 Bulk Import
Support CSV onboarding for large communities.
Endpoint:
Example CSV:
🔑 API Key System
Communities can generate API keys for integrations.
Example key:
Schema:
Example permissions:
🧾 Member Schema
👤 User Schema
📊 Analytics
Track onboarding metrics.
Example metrics:
Endpoint:
🔒 Security Requirements
Implement:
📜 Audit Logging
Track actions:
Schema:
🖥 Desktop Integration (Tauri)
Member system will power the following screens:
📧 Email Templates
Required templates:
Recommended providers:
✅ Acceptance Criteria
POST /api/v1/membersendpoint implemented