Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

🚀 Feature: Production-Ready Member Creation & Onboarding System

未关闭
#1 24 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 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 内容生成。

描述

enhancement good first issue help wanted level2 NSoC'26

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/members endpoint 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

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

NexGenStudioDev/CommDesk 的其他 Issue

查看 NexGenStudioDev/CommDesk 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。