{"id":51436844,"url":"https://github.com/claude-code-expert/tika","last_synced_at":"2026-07-05T07:07:33.463Z","repository":{"id":339768893,"uuid":"1149601544","full_name":"claude-code-expert/tika","owner":"claude-code-expert","description":"SDD 방식으로 개발하는 TODO 애플리케이션","archived":false,"fork":false,"pushed_at":"2026-04-17T03:11:57.000Z","size":11664,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T04:38:40.182Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tika-kappa.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claude-code-expert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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":"2026-02-04T09:54:46.000Z","updated_at":"2026-04-17T03:12:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/claude-code-expert/tika","commit_stats":null,"previous_names":["claude-code-expert/tika"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/claude-code-expert/tika","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-code-expert%2Ftika","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-code-expert%2Ftika/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-code-expert%2Ftika/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-code-expert%2Ftika/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claude-code-expert","download_url":"https://codeload.github.com/claude-code-expert/tika/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-code-expert%2Ftika/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35146128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"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":[],"created_at":"2026-07-05T07:07:30.452Z","updated_at":"2026-07-05T07:07:33.399Z","avatar_url":"https://github.com/claude-code-expert.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tika\n\n---\n\n### 소개\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"35%\" align=\"center\" valign=\"top\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/claude-code-expert/.github/main/profile/assets/cc-master.png\" alt=\"클로드 코드 마스터\" width=\"100%\" /\u003e\n\n\u003cbr/\u003e\n\n\u003ca href=\"https://product.kyobobook.co.kr/detail/S000219725328\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/클로드_코드_마스터-온라인_구매-2E75B6?style=for-the-badge\u0026logo=bookstack\u0026logoColor=white\" alt=\"클로드 코드 마스터 온라인 구매\" /\u003e\u003c/a\u003e\n\n\u003c/td\u003e\n\u003ctd width=\"65%\" valign=\"top\"\u003e\n\n**Claude Code Expert**는 『클로드 코드 마스터 — 기획 · 개발 · 운영이 한 번에 끝나는 AI 에이전틱 코딩 워크 플로』의 공식 GitHub 조직입니다.\n\n책에서 다루는 프로젝트 예제를 고도화 한 티켓기반 이슈트래커 SaaS입니다.\n\n책에 수록된 모든 예제 코드, 참고 자료가 이 레파지터리에서 관리됩니다.\n\n책 관련 문의 사항이나 프로젝트 관련 문의사항은 brewnet.dev@gmail.com으로 연락주시기 바랍니다.\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n\u003e **이 프로젝트가 도움이 되었다면, Star를 눌러 마음을 표현해 주세요!**\n\u003e **If you find this project helpful, please give it a Star to show your support!**\n\nGoal \u003e Story \u003e Feature \u003e Task 계층으로 업무를 분해하고, 칸반 보드에서 드래그 앤 드롭으로 관리하는 티켓 기반 협업 도구로 WBS 관리나 멤버들의 일감 현황을 한 눈에 추적하고 관리할 수 있습니다.\nAI 분석 도구와 MCP를 통해 개발 단계에서 업무의 효율적인 등록관리, 상태변경, 자동화를 지원합니다. (개발 진행중)\n\n공식 홈페이지 : **https://tika-app.vercel.app**\n\n---\n\n## Features\n\n- **칸반 보드** — Backlog 사이드바 + TODO / In Progress / Done 3칼럼, 드래그 앤 드롭\n- **티켓 관리** — CRUD, 4가지 타입(Goal/Story/Feature/Task), 우선순위, 시작·마감일, 체크리스트, 라벨, 댓글, 담당자 배정\n- **이슈 계층** — Goal → Story → Feature → Task 상하위 연결\n- **팀 협업** — 워크스페이스 초대 링크(24h 만료), 역할 관리(OWNER/MEMBER/VIEWER), WBS/간트 차트, 팀 대시보드(번다운·워크로드·통계)\n- **알림** — Slack / Telegram 채널 연동, 마감일 D-1 자동 알림, 헤더 벨 드롭다운\n- **검색 \u0026 필터** — 실시간 검색, 필터 칩, 라벨·우선순위·날짜 범위 고급 필터\n- **인증** — Google OAuth (NextAuth.js v5), 온보딩 워크스페이스 선택\n\n---\n\n## Screenshots\n\n**랜딩 페이지**\n![랜딩 페이지](public/images/tika-1.png)\n\n**대시보드**\n![대시보드](public/images/tika-2.png)\n\n**칸반 보드**\n![칸반 보드](public/images/tika-3.png)\n\n**WBS**\n![WBS](public/images/tika-4.png)\n\n**Project 분석**\n![Project 분석](public/images/tika-5.png)\n\n**멤버 현황 분석**\n![멤버 현황 분석](public/images/tika-6.png)\n\n---\n\n## Tech Stack\n\n| Category    | Technology                 | Version |\n| ----------- | -------------------------- | ------- |\n| Framework   | Next.js (App Router)       | 15      |\n| Language    | TypeScript (strict)        | 5.7     |\n| UI          | React + Tailwind CSS       | 19 / 4  |\n| Drag \u0026 Drop | @dnd-kit                   | 6.x     |\n| ORM         | Drizzle ORM                | 0.38    |\n| Database    | PostgreSQL (Neon)          | 14+     |\n| Auth        | NextAuth.js (Google OAuth) | 5.x     |\n| Validation  | Zod                        | 3.24    |\n| Deploy      | Vercel                     | —       |\n\n---\n\n## Getting Started\n\n```bash\nnpm install\ncp .env.example .env.local\nnpm run db:migrate   # DB 마이그레이션 적용\nnpm run dev          # http://localhost:3000\n```\n\n\u003e 셀프 호스팅 전체 설치 절차(DB, OAuth, Cron, Vercel 배포)는 **[docs/INSTALL.md](docs/INSTALL.md)** 를 참고하세요.\n\n### 필수 환경변수 (`.env.local`)\n\n```env\nPOSTGRES_URL=postgresql://...\nNEXTAUTH_SECRET=          # openssl rand -base64 32\nNEXTAUTH_URL=http://localhost:3000\nGOOGLE_CLIENT_ID=\nGOOGLE_CLIENT_SECRET=\nCRON_SECRET=              # openssl rand -base64 32  ← 크론 인증 토큰(알림용)\nSLACK_WEBHOOK_URL=        # 문의 폼 → Slack 알림 (선택)\n```\n\n### Google OAuth\n\n1. [Google Cloud Console](https://console.cloud.google.com/) → APIs \u0026 Services → Credentials\n2. OAuth 2.0 Client ID 생성 (Web application)\n3. Authorized redirect URI: `http://localhost:3000/api/auth/callback/google`\n\n### 마감일 D-1 자동 알림 (GitHub Actions Cron)\n\n매일 **KST 09:00** (UTC 00:00)에 내일 마감인 티켓 담당자에게 인앱 알림을 자동 발송합니다.\n워크플로우 파일: `.github/workflows/daily-notify.yml`\n\n#### 동작 방식\n\n```\n매일 KST 09:00\n      ↓\nGitHub Actions 실행\n      ↓\ncurl GET https://[APP_URL]/api/cron/notify-due\n     Authorization: Bearer [CRON_SECRET]\n      ↓\n내일 마감 티켓 담당자에게 인앱 알림 발송\n```\n\n`CRON_SECRET`은 외부에서 이 API를 무단 호출하지 못하도록 막는 인증 토큰입니다.\n`.env.local`, Vercel 환경변수, GitHub Secret **세 곳의 값이 모두 동일**해야 합니다.\n\n#### 1단계 — CRON_SECRET 생성\n\n아직 값이 없다면 터미널에서 생성합니다:\n\n```bash\nopenssl rand -base64 32\n```\n\n출력된 값을 복사해 `.env.local`과 Vercel 환경변수에 `CRON_SECRET`으로 등록합니다.\n\n#### 2단계 — GitHub Repository Secrets 등록\n\n1. `https://github.com/{owner}/{repo}/settings/secrets/actions` 접속\n2. **\"New repository secret\"** 버튼 클릭 → 첫 번째 시크릿 입력:\n\n   ```\n   Name:   APP_URL\n   Secret: https://your-domain.vercel.app\n   ```\n\n   → **Add secret** 클릭\n\n3. 다시 **\"New repository secret\"** 버튼 클릭 → 두 번째 시크릿 입력:\n\n   ```\n   Name:   CRON_SECRET\n   Secret: (1단계에서 생성한 값, .env.local의 CRON_SECRET과 동일)\n   ```\n\n   → **Add secret** 클릭\n\n4. 목록에 `APP_URL`, `CRON_SECRET` 두 개가 표시되면 완료\n\n\u003e ⚠️ **Environment secrets가 아닌 Repository secrets**에 추가해야 합니다.\n\u003e Settings → Secrets and variables → Actions 페이지의 **\"Repository secrets\"** 섹션을 확인하세요.\n\n#### 수동 테스트\n\nGitHub → Actions 탭 → **Daily D-1 Notification** 선택 → **Run workflow** 버튼으로 즉시 실행 가능합니다.\n\n---\n\n## Scripts\n\n| Command               | Description             |\n| --------------------- | ----------------------- |\n| `npm run dev`         | 개발 서버               |\n| `npm run build`       | 프로덕션 빌드           |\n| `npm run lint`        | ESLint                  |\n| `npm run format`      | Prettier                |\n| `npm run db:generate` | 마이그레이션 파일 생성  |\n| `npm run db:migrate`  | 마이그레이션 적용       |\n| `npm run db:studio`   | Drizzle Studio (DB GUI) |\n| `npm run db:seed`     | 시드 데이터 삽입        |\n| `npm run test`        | Jest 테스트             |\n\n---\n\n## Deploy (Vercel)\n\n1. GitHub에 Push → Vercel Import\n2. Environment Variables 등록 (위 `.env.local` 항목 동일)\n3. Google Cloud Console에 프로덕션 redirect URI 추가:\n   `https://your-domain.com/api/auth/callback/google`\n\n---\n\n## Bug Report\n\n버그를 발견했다면 [GitHub Issues](../../issues)에 등록해 주세요.\n\n### 이슈 등록 방법\n\n1. **[Issues 탭](../../issues)** → **\"New issue\"** 클릭\n2. 아래 항목을 포함해 작성합니다:\n\n   | 항목          | 설명                                                              |\n   | ------------- | ----------------------------------------------------------------- |\n   | **제목**      | 버그를 한 줄로 요약 (예: `칸반 보드에서 드래그 후 카드가 사라짐`) |\n   | **재현 방법** | 버그가 발생하는 단계별 순서                                       |\n   | **기대 동작** | 원래 어떻게 동작해야 하는지                                       |\n   | **실제 동작** | 실제로 어떻게 동작했는지                                          |\n   | **환경**      | OS, 브라우저, 버전 등                                             |\n   | **스크린샷**  | 가능하면 화면 캡처 첨부                                           |\n\n3. **Labels** 에서 `bug` 를 선택하고 제출합니다.\n\n\u003e 보안 취약점은 이슈 대신 이메일로 직접 제보해 주세요.\n\n---\n\n## License\n\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaude-code-expert%2Ftika","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaude-code-expert%2Ftika","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaude-code-expert%2Ftika/lists"}