Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기스터디 및 네트워킹 매칭 서비스ㅡPrototype
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗경계를 넘어 함께 성장하는 목적 중심 스터디 & 네트워킹 매칭 플랫폼
🌐 라이브 서비스: https://modoo42.vercel.app
불필요한 친목과 잡담, 복잡한 절차를 걷어내고 '목표를 함께 달성할 동료 매칭' 에 집중합니다.
자체 채팅 대신 리더가 설정한 외부 채널(카카오 오픈채팅, 디스코드 등)로 즉시 연결해 소통 피로도를 줄이고 실행력을 높입니다.
| 목표 구현 (Demo) | 정규 스터디 (Demo) |
|---|---|
[!IMPORTANT] Node.js 버전 요구사항: 반드시 Node.js 20 이상(
node -v)을 사용해야 합니다. Node.js 18 이하 버전에서는drizzle-kit(마이그레이션 및 스키마 검증) 실행 시 모듈 호환성 오류가 발생합니다.
저장소를 클론하고 의존성 패키지를 설치합니다:
# 저장소 클론 및 디렉토리 진입
git clone https://github.com/erdoslibrary/modoo42.git
cd modoo42
# 패키지 매니저(pnpm)를 통한 의존성 설치
pnpm install
.env.example을 복사하여 .env.local 파일을 생성하고 필수 값을 설정합니다:
cp .env.example .env.local
주요 설정 항목:
# Supabase PostgreSQL 접속 문자열 (Transaction Pooler 또는 Direct)
DATABASE_URL="postgres://postgres.[PROJECT-REF]:[PASSWORD]@aws-0-[REGION].pooler.supabase.com:6543/postgres"
# Supabase 공개 URL 및 anon 키 (Realtime 구독용)
NEXT_PUBLIC_SUPABASE_URL="https://[PROJECT-REF].supabase.co"
NEXT_PUBLIC_SUPABASE_ANON_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
# 앱 베이스 URL
NEXT_PUBLIC_APP_URL="http://localhost:3000"
# GitHub OAuth App 자격증명 (프로덕션 환경 필수)
GITHUB_CLIENT_ID="your_github_client_id"
GITHUB_CLIENT_SECRET="your_github_client_secret"
# 개발자 콘솔 게이트 (로컬 테스트 및 샌드박스 격리용 비밀번호)
DEV_CONSOLE_PASSWORD="your_dev_console_password"
Drizzle ORM을 통해 Supabase PostgreSQL 인스턴스에 최신 스키마를 적용합니다:
# 스키마 정합성 검증
pnpm drizzle-kit check
# 마이그레이션 적용
pnpm drizzle-kit migrate
# 개발자 콘솔 샌드박스 동기화 (최초 1회)
pnpm sandbox:sync
pnpm dev
/login으로 자동 리다이렉트)/login 화면 하단의 [개발자 콘솔로 진입] 버튼을 누르고 .env.local에 설정한 DEV_CONSOLE_PASSWORD를 입력합니다.dev_sandbox 스키마가 격리 활성화되며, 화면 우측 하단에 [🛠 DEV] 플로팅 패널이 노출됩니다.[🛠 DEV] 패널의 인증 탭에서 테스트 페르소나(gs_leader, gs_member, seoul_member, github_only)로 즉시 전환할 수 있습니다.[GitHub 계정으로 로그인]도 지원합니다.chat_url)는 참여자에게만 안전하게 마스킹 해제.SELECT ... FOR UPDATE 락 적용.dev_sandbox) 격리를 통한 안전한 로컬 테스트 환경 지원.Next.js 14 App Router 기반 풀스택 구조로, 프레젠테이션 계층, 비즈니스 로직 및 API 계층, Supabase PostgreSQL 데이터 계층이 유기적으로 연동됩니다.
%%{init: {'flowchart': {'curve': 'linear'}}}%%
flowchart TD
subgraph Clients ["프레젠테이션 계층 (Presentation)"]
Web["웹 대시보드 (Next.js 14)<br/>반응형 대시보드 · 스터디 개설 · 완주 판정"]
CLI["CLI 조회 도구 (curl / HTTP API)<br/>LIVE 핑 및 활성 모집 조회"]
end
subgraph App_Server ["애플리케이션 계층 (Next.js App Router)"]
Auth["인증 & 세션 관리<br/>GitHub OAuth 2.0 · 30일 HMAC 세션 쿠키"]
RouteHandlers["API Route Handlers<br/>(/api/posts, /api/auth, /api/cli)"]
Templates["플러그인 템플릿 레지스트리<br/>(코딩테스트, 모각코, 책 완독 등)"]
Auth --> RouteHandlers
Templates --> RouteHandlers
end
subgraph Data_Layer ["데이터 & 인프라 계층 (Supabase & PostgreSQL)"]
PostgreSQL["Supabase PostgreSQL<br/>(Drizzle ORM · 비관적 락 SELECT FOR UPDATE)"]
Realtime["Supabase Realtime<br/>(WebSocket 상태 변경 브로드캐스트)"]
RouteHandlers --> PostgreSQL
PostgreSQL -.-> Realtime
end
Web <--> RouteHandlers
Web <--> Realtime
CLI <--> RouteHandlers
main 브랜치 푸시 시 자동 배포가 트리거됩니다..github/workflows/ci.yml):
pnpm lint), 타입 검사(pnpm typecheck), 프로덕션 빌드 검증(pnpm build), DB 스키마 정합성(pnpm drizzle-kit check)을 자동 검증합니다.# 전체 테스트 스위트 실행 (총 305개 테스트, 32개 파일)
pnpm test
# 정적 코드 분석
pnpm lint
# TypeScript 타입 검사
pnpm typecheck
modoo42/
├── docs/ # 기술 설계서(trd.md), 요구사항(requirement.md), 기획서(plan.md)
│ └── designs/ # UI/UX 원형 디자인 명세 및 상호작용 가이드
├── drizzle/ # Drizzle ORM 자동 생성 SQL 마이그레이션 파일
├── specs/ # Spec-Driven Development (speckit) 단계별 아티팩트
├── src/ # 애플리케이션 소스 코드
│ ├── app/ # Next.js 14 App Router 페이지 및 API Route Handlers
│ │ ├── api/ # REST API 엔드포인트 (/posts, /auth, /cli 등)
│ │ └── ... # 프론트엔드 라우트
│ ├── components/ # 재사용 React UI 컴포넌트
│ ├── db/ # PostgreSQL 클라이언트 및 Drizzle 스키마 정의 (schema.ts)
│ ├── hooks/ # 클라이언트 커스텀 훅 (Realtime 구독 훅 등)
│ ├── lib/ # 공통 유틸리티 (인증 세션, Supabase 클라이언트, 에러 핸들러)
│ └── templates/ # 모듈형 스터디 템플릿 등록부 (registry.ts)
└── tests/ # 단위 및 통합 테스트 스위트 (Vitest)
| 팀원 | 역할 및 담당 영역 |
|---|---|
| @erdoslibrary | Full-stack Architecture, Backend & Database, Frontend Integration |
본 프로젝트는 아래의 오픈소스 기술 및 라이브러리를 기반으로 개발되었습니다:
본 프로젝트는 Apache License 2.0을 따릅니다.
"내가 보고 싶었던 장면이, 누군가 정말 필요로 했던 경험이 될 때까지"