Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

🚀 Feature: Production-Ready Member Creation & Onboarding System

Đang mở
#1 24 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
20/100
Loại issue
Tính năng
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Ít trao đổi
Công nghệ
tauri, typescript

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
TypeScript
Star
7
Fork
17
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của NexGenStudioDev/CommDesk

Tất cả issue của NexGenStudioDev/CommDesk

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.