{"id":27969644,"url":"https://github.com/teamuplabs/team-up","last_synced_at":"2026-04-30T10:06:23.687Z","repository":{"id":291897848,"uuid":"979142284","full_name":"TeamUpLabs/team-up","owner":"TeamUpLabs","description":"TeamUp은 개발자, 디자이너, 기획자 등 다양한 역할을 가진 사람들이 모여 토이 프로젝트를 비대면으로 협업할 수 있도록 돕는 플랫폼입니다.","archived":false,"fork":false,"pushed_at":"2026-04-23T03:20:47.000Z","size":3509,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-23T04:15:36.801Z","etag":null,"topics":["nextjs","platform","project","toy-project","typescript"],"latest_commit_sha":null,"homepage":"https://team-up.kro.kr","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TeamUpLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-07T04:09:19.000Z","updated_at":"2026-04-23T02:23:47.000Z","dependencies_parsed_at":"2025-05-07T21:49:53.011Z","dependency_job_id":"bb6d25de-81f4-4bb9-9852-f6712365c5fd","html_url":"https://github.com/TeamUpLabs/team-up","commit_stats":null,"previous_names":["lee-seokmin/team-up"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TeamUpLabs/team-up","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamUpLabs%2Fteam-up","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamUpLabs%2Fteam-up/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamUpLabs%2Fteam-up/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamUpLabs%2Fteam-up/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeamUpLabs","download_url":"https://codeload.github.com/TeamUpLabs/team-up/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeamUpLabs%2Fteam-up/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32460834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","platform","project","toy-project","typescript"],"created_at":"2025-05-07T21:49:49.510Z","updated_at":"2026-04-30T10:06:23.679Z","avatar_url":"https://github.com/TeamUpLabs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 TeamUp - 원격 협업 플랫폼\n\n![Vercel Deploy](https://deploy-badge.vercel.app/?url=https%3A%2F%2Fteam-up.kro.kr%2F\u0026logo=vercel\u0026name=vercel)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Next.js](https://img.shields.io/badge/Next.js-13+-black?logo=next.js)](https://nextjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-4.9+-3178C6?logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n\n\u003e **\"Create. Collaborate. Code. Together.\"**  \n\u003e 당신의 아이디어, 팀이 되어 현실로.\n\n---\n\n## 📋 프로젝트 개요\n\n### 🎯 해결하려는 문제\n- 원격 근무가 일상화된 환경에서의 효율적인 프로젝트 관리 어려움\n- 팀원 간 소통 및 협업의 비효율성\n- 작업 진행 상황 파악의 어려움\n- 여러 도구 간의 연동 불편함\n\n### 💼 비즈니스 가치\n- **생산성 향상**: 통합된 협업 도구로 작업 효율성 극대화\n- **비용 절감**: 여러 도구 구독 대신 하나의 플랫폼으로 통합\n- **확장성**: 모듈식 아키텍처로 기능 추가 및 확장 용이\n- **데이터 기반 의사결정**: 프로젝트 메트릭 및 분석 제공\n\n### ✨ 차별화 포인트\n1. **통합된 협업 환경**: 채팅, 작업 관리, 일정 관리를 한 곳에서\n2. **실시간 데이터 시각화**: 프로젝트 진행 상황을 직관적으로 파악\n3. **사용자 경험 중심**: 직관적인 UI/UX로 학습 곡선 최소화\n4. **확장 가능한 아키텍처**: 팀의 성장에 맞춰 확장 가능\n\n## 🛠 주요 기능 및 활용 사례\n\n### 📊 프로젝트 관리 대시보드\n- **기능**: 프로젝트 전반의 진행 상황을 한눈에 파악\n- **활용 사례**: 매주 월요일 팀 회의에서 대시보드를 통해 주간 목표 설정 및 진행 상황 공유\n\n### 📅 작업 관리 (칸반 보드)\n- **기능**: 드래그 앤 드롭으로 작업 상태 관리\n- **활용 사례**: 스프린트 기반으로 작업을 진행하며, 각 작업의 진행 상태를 실시간으로 공유\n\n### 💬 실시간 채팅\n- **기능**: WebSocket 기반의 실시간 메시징\n- **활용 사례**: 팀원들과의 빠른 소통 및 의사결정\n\n### 📹 화상 회의\n- **기능**: WebRTC를 활용한 고품질 화상 통화\n- **활용 사례**: 주간 스탠드업 미팅 또는 이슈 해결을 위한 즉석 회의\n\n### 📈 데이터 분석\n- **기능**: 팀원별 기여도, 작업 완료율 등의 분석\n- **활용 사례**: 분기별 성과 평가 및 리소스 배분 계획 수정\n\n## 🏗️ 아키텍처 개요\n\n```mermaid\ngraph TD\n    A[클라이언트] --\u003e|HTTPS| B[Next.js 프론트엔드]\n    B --\u003e|API 요청| C[Next.js API Routes]\n    C --\u003e D[(데이터베이스)]\n    B --\u003e|WebSocket| E[실시간 서버]\n    B --\u003e|OAuth 2.0| F[인증 서버]\n    C --\u003e|Webhook| G[GitHub/Figma/Notion]\n    \n\n```\n\n## 📂 프로젝트 구조\n\n```\nteam-up/\n├── public/                 # 정적 파일 (이미지, 아이콘 등)\n│   ├── icons/             # 아이콘 에셋\n│   └── json/              # JSON 데이터 파일\n│\n├── src/\n│   ├── app/               # Next.js 앱 라우터\n│   │   ├── about/         # 소개 페이지\n│   │   ├── api/           # API 라우트\n│   │   ├── auth/          # 인증 관련 페이지\n│   │   └── platform/      # 메인 플랫폼 페이지\n│   │\n│   ├── auth/              # 인증 관련 로직\n│   ├── components/        # 재사용 가능한 컴포넌트\n│   │   ├── platform/      # 플랫폼 전용 컴포넌트\n│   │   ├── project/       # 프로젝트 관련 컴포넌트\n│   │   └── ui/            # UI 컴포넌트 (DatePicker, Accordion 등)\n│   │\n│   ├── contexts/          # React 컨텍스트\n│   ├── hooks/             # 커스텀 훅\n│   ├── layouts/           # 페이지 레이아웃\n│   ├── types/             # TypeScript 타입 정의\n│   └── lib/               # 유틸리티 함수\n│\n├── .github/               # GitHub 관련 설정\n├── .eslintrc.json         # ESLint 설정\n├── next.config.ts         # Next.js 설정\n├── package.json           # 의존성 및 스크립트\n└── tsconfig.json          # TypeScript 설정\n```\n\n## 🛠 개발 환경 설정\n\n### 필수 조건\n- Node.js 18.0.0 이상\n- npm 9.0.0 이상 또는 yarn 1.22.0 이상\n- Git\n\n### 로컬 개발 환경 설정\n\n1. 저장소 클론\n   ```bash\n   git clone https://github.com/your-org/team-up.git\n   cd team-up\n   ```\n\n2. 의존성 설치\n   ```bash\n   npm install\n   # 또는\n   yarn install\n   ```\n\n3. 환경 변수 설정 (`.env.local` 파일 생성)\n   ```env\n   # 필수 환경 변수\n   NEXT_PUBLIC_API_URL=http://localhost:3000\n   NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key\n   NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com\n   \n   # 선택적 환경 변수\n   NODE_ENV=development\n   ```\n\n4. 개발 서버 실행\n   ```bash\n   npm run dev\n   # 또는\n   yarn dev\n   ```\n\n5. 브라우저에서 확인\n   ```\n   http://localhost:3000\n   ```\n\n## 🛠 기술 스택\n\n### 프론트엔드\n- **프레임워크**: Next.js 13+ (App Router)\n- **상태 관리**: Zustand, React Context\n- **스타일링**: Tailwind CSS\n- **UI 컴포넌트**: Headless UI, Radix UI\n- **차트**: Recharts\n- **드래그 앤 드롭**: @dnd-kit\n- **에디터**: @uiw/react-md-editor\n\n### 백엔드\n- **런타임**: Node.js\n- **API**: Next.js API Routes\n- **인증**: Firebase Authentication\n- **데이터베이스**: (백엔드 서버에 따라 다름)\n\n### 인프라\n- **호스팅**: Vercel (프론트엔드), AWS (백엔드)\n- **CI/CD**: GitHub Actions\n- **모니터링**: Sentry, LogRocket\n\n## 🧪 테스트\n\n### 단위 테스트 실행\n```bash\nnpm test\n# 또는\nyarn test\n```\n\n### E2E 테스트 실행\n```bash\nnpm run test:e2e\n# 또는\nyarn test:e2e\n```\n\n### 테스트 커버리지 확인\n```bash\nnpm run test:coverage\n# 또는\nyarn test:coverage\n```\n\n## 🚀 배포\n\n### 스테이징 환경\n```bash\n# 스테이징 브랜치에 푸시 시 자동 배포\ngit push origin feature/your-feature:staging\n```\n\n### 프로덕션 환경\n1. 메인 브랜치에 PR 생성\n2. 코드 리뷰 진행\n3. 메인 브랜치 머지 시 자동 배포\n\n## 🔒 보안 및 개인정보 보호\n\n### 데이터 보호\n- 모든 통신은 HTTPS 암호화\n- 민감한 정보는 환경 변수로 관리\n- 정기적인 보안 감사 수행\n\n### 인증 및 권한\n- JWT 기반 인증\n- 역할 기반 접근 제어(RBAC)\n- 2단계 인증(2FA) 지원\n\n### 개인정보 처리 방침\n- 사용자 데이터는 암호화되어 저장\n- 데이터 보존 정책 준수\n- GDPR 및 개인정보보호법 준수\n\n## 🤝 팀 협업 가이드라인\n\n### 브랜치 전략\n- `main`: 안정적인 릴리스 브랜치\n- `develop`: 개발 브랜치\n- `feature/`: 기능 개발 브랜치\n- `hotfix/`: 긴급 수정 브랜치\n\n### 커밋 메시지 컨벤션\n```\ntype(scope): 제목\n\n본문 (선택사항)\n\n꼬리말 (선택사항)\n```\n\n**타입 목록**:\n- `feat`: 새로운 기능 추가\n- `fix`: 버그 수정\n- `docs`: 문서 수정\n- `style`: 코드 포맷팅, 세미콜론 누락 등\n- `refactor`: 코드 리팩토링\n- `test`: 테스트 코드 추가/수정\n- `chore`: 빌드 과정 또는 보조 기능 수정\n\n### 코드 리뷰\n- 모든 PR은 최소 1명 이상의 리뷰 필요\n- 코드 리뷰는 24시간 이내에 진행\n- 리뷰어는 PR 작성자에게 명확한 피드백 제공\n\n## 📅 향후 로드맵\n\n### 단기 목표 (3개월)\n- [ ] 실시간 협업 에디터 추가\n- [ ] 모바일 앱 출시\n- [ ] 통합 캘린더 기능 강화\n\n### 중기 목표 (6개월)\n- [ ] AI 기반 작업 추천 시스템\n- [ ] 고급 분석 대시보드\n- [ ] 타임트래킹 통합\n\n### 장기 목표 (1년 이상)\n- [ ] 워크플로우 자동화 빌더\n- [ ] 마켓플레이스 통합\n- [ ] 글로벌 확장 (다국어 지원)\n\n## 📄 라이센스\n\n이 프로젝트는 [MIT 라이센스](LICENSE)를 따릅니다.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e© 2025 TeamUp. All rights reserved.\u003c/p\u003e\n\u003c/div\u003e\n\nTeamUp은 함께 만들어가는 플랫폼입니다.\n\n기여, 아이디어 제안, 피드백 모두 환영합니다!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamuplabs%2Fteam-up","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteamuplabs%2Fteam-up","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteamuplabs%2Fteam-up/lists"}