🚀 Feature: Production-Ready Member Creation & Onboarding System
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 20/100
- Issue 类型
- 功能
- 描述清晰度
- 需要澄清
- 活跃度
- 冷清
- 技术栈
- tauri, typescript
调研方向
No repository files or tests are named. Start by mapping the listed API entry points—POST /api/v1/members, POST /api/v1/auth/activate-member, POST /api/v1/members/import, and GET /analytics/members—against the existing TypeScript and Tauri structure. Done requires all acceptance criteria, including authentication, activation, bulk import, permissions, audit logging, analytics, and desktop integration, to be implemented and verified.
由索引模型根据 Issue 内容生成。
描述
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: [email protected]
Member
community: Apex Circle
role: Mentor
🔄 Member Status Lifecycle
On Boarding
↓
Active
↓
Inactive
↓
Suspended
↓
Banned
Default status when created:
On Boarding
Meaning the member must activate their account before access.
🛠 API Design
Unified Member Creation API
POST /api/v1/members
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": "[email protected]",
"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,[email protected],Volunteer
Alice,Lee,[email protected],Mentor
🔑 API Key System
Communities can generate API keys for integrations.
Example key:
cd_live_93hf93hf
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:
GET /analytics/members
🔒 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
- Unified
POST /api/v1/membersendpoint implemented - Dashboard onboarding supported
- API key onboarding supported
- Activation email flow working
- Member activation endpoint implemented
- Bulk import implemented
- Role and permission system enforced
- Audit logging implemented
- Onboarding analytics endpoint created
- 主要语言
- TypeScript
- 星标
- 7
- 派生
- 17
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
NexGenStudioDev/CommDesk 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
NexGenStudioDev/CommDesk#140 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
NexGenStudioDev/CommDesk#138 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
NexGenStudioDev/CommDesk#130 · 2 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 72/100
NexGenStudioDev/CommDesk#123 · 2 条评论 ·
-
[UX] Hardcoded window dimensions not DPI-aware — UI broken on high-DPI displays可能重新可做 @anshul23102 于 81 天前认领,目前没有进行中的 PR。 未关闭
NexGenStudioDev/CommDesk#141 · 已指派 1 人 ·
查看 NexGenStudioDev/CommDesk 的全部 Issue
相似的 Issue
-
check:passed streams:add
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
Fission-AI/OpenSpec#1986 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
nestjs/docs.nestjs.com#3554 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
publicodes/publicodes#868 ·
-
namespace operations
难度 1/5 1 小时以内 新手友好度 78/100
EclipseFdn/open-vsx.org#13488 ·
维护者通常 2 天内回复