{"id":18363061,"url":"https://github.com/cccwon2/taskify-api","last_synced_at":"2025-08-01T23:33:36.513Z","repository":{"id":261181776,"uuid":"883104503","full_name":"cccwon2/taskify-api","owner":"cccwon2","description":"Taskify API","archived":false,"fork":false,"pushed_at":"2024-11-05T05:27:49.000Z","size":679,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-05T06:24:49.419Z","etag":null,"topics":["nestjs","postresql","prisma","supabase","taskify","taskify-api"],"latest_commit_sha":null,"homepage":"","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/cccwon2.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-04T11:38:45.000Z","updated_at":"2024-11-05T05:30:15.000Z","dependencies_parsed_at":"2024-11-05T06:25:14.193Z","dependency_job_id":null,"html_url":"https://github.com/cccwon2/taskify-api","commit_stats":null,"previous_names":["cccwon2/taskify-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cccwon2%2Ftaskify-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cccwon2%2Ftaskify-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cccwon2%2Ftaskify-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cccwon2%2Ftaskify-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cccwon2","download_url":"https://codeload.github.com/cccwon2/taskify-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231032144,"owners_count":18317772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["nestjs","postresql","prisma","supabase","taskify","taskify-api"],"created_at":"2024-11-05T23:04:41.583Z","updated_at":"2024-12-24T00:12:27.441Z","avatar_url":"https://github.com/cccwon2.png","language":"TypeScript","readme":"# Taskify API\n\n![NestJS](https://img.shields.io/badge/NestJS-10.0.0-E0234E?style=flat-square\u0026logo=nestjs)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.1.3-3178C6?style=flat-square\u0026logo=typescript)\n![Prisma](https://img.shields.io/badge/Prisma-5.21.1-2D3748?style=flat-square\u0026logo=prisma)\n![Swagger](https://img.shields.io/badge/Swagger-8.0.1-85EA2D?style=flat-square\u0026logo=swagger)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-Latest-4169E1?style=flat-square\u0026logo=postgresql)\n![JWT](https://img.shields.io/badge/JWT-10.2.0-000000?style=flat-square\u0026logo=jsonwebtokens)\n![Supabase](https://img.shields.io/badge/Supabase-Latest-3ECF8E?style=flat-square\u0026logo=supabase)\n\n## 📝 Description\n\nTaskify는 협업을 위한 칸반 보드 서비스입니다. 사용자들은 대시보드를 생성하고, 팀원들을 초대하여 함께 작업할 수 있습니다.\n\n## ✨ Features\n\n- 🔐 Authentication (JWT)\n  - 이메일 회원가입/로그인\n  - 소셜 로그인 (Google, Kakao, Naver)\n  - 토큰 갱신\n- 📋 Dashboard Management\n  - 대시보드 CRUD\n  - 팀원 초대 및 관리\n- 📊 Kanban Board\n  - 컬럼 CRUD\n  - 카드 CRUD\n  - 카드 이미지 업로드\n  - 카드 담당자 지정\n  - 댓글 기능\n- 👥 User Management\n  - 프로필 수정\n  - 프로필 이미지 업로드\n\n## 🛠 Tech Stack\n\n### Backend\n\n- NestJS\n- TypeScript\n- Prisma (ORM)\n- PostgreSQL\n- Swagger\n- JWT\n- Passport\n\n### Infrastructure\n\n- Supabase\n  - PostgreSQL Database\n  - Storage Buckets\n    - profiles: 프로필 이미지 저장\n    - cards: 카드 이미지 저장\n\n## 📦 Installation\n\n```bash\n$ npm install\n```\n\n## 🚀 Running the app\n\n```bash\n# development\n$ npm run start\n\n# watch mode\n$ npm run start:dev\n\n# production mode\n$ npm run start:prod\n```\n\n## 🧪 Test\n\n```bash\n# unit tests\n$ npm run test\n\n# e2e tests\n$ npm run test:e2e\n\n# test coverage\n$ npm run test:cov\n```\n\n## 📚 API Documentation\n\nAPI 문서는 Swagger를 통해 제공됩니다.\n\n- 개발 환경: http://localhost:5000/docs\n\n## 🔧 Environment Variables\n\n프로젝트 실행을 위해 다음과 같은 환경 변수가 필요합니다:\n\n```env\n# Supabase 설정\nSUPABASE_URL=\"your-supabase-url\"\nSUPABASE_KEY=\"your-supabase-key\"\nSUPABASE_STORAGE_BUCKET_NAME=\"your-bucket-name\"\n\n# Database 설정 (Supabase PostgreSQL 연결 문자열)\nDATABASE_URL=\"your-postgresql-connection-string\"\n\n# JWT 설정\nJWT_SECRET=\"your-jwt-secret\"\nJWT_REFRESH_SECRET=\"your-jwt-refresh-secret\"\n\n# 포트 설정\nPORT=5000\n\n# OAuth 설정\nGOOGLE_CLIENT_ID=\"your-google-client-id\"\nGOOGLE_CLIENT_SECRET=\"your-google-client-secret\"\nGOOGLE_CALLBACK_URL=\"http://localhost:3000/auth/google/callback\"\n\nKAKAO_CLIENT_ID=\"your-kakao-client-id\"\nKAKAO_CLIENT_SECRET=\"your-kakao-client-secret\"\nKAKAO_CALLBACK_URL=\"http://localhost:3000/auth/kakao/callback\"\n\nNAVER_CLIENT_ID=\"your-naver-client-id\"\nNAVER_CLIENT_SECRET=\"your-naver-client-secret\"\nNAVER_CALLBACK_URL=\"http://localhost:3000/auth/naver/callback\"\n```\n\n## 📁 Project Structure\n\n```\nsrc/\n├── auth/           # 인증 관련\n├── user/           # 사용자 관련 (프로필 이미지 업로드 포함)\n├── dashboard/      # 대시보드 관련\n├── column/         # 컬럼 관련\n├── card/           # 카드 관련 (카드 이미지 업로드 포함)\n├── comment/        # 댓글 관련\n├── invitation/     # 초대 관련\n├── member/         # 멤버 관련\n├── common/         # 공통 모듈\n└── prisma/         # Prisma 설정\n```\n\n## 📄 License\n\n이 프로젝트는 MIT 라이센스를 따릅니다. 자세한 내용은 [LICENSE](LICENSE) 파일을 참조하세요.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcccwon2%2Ftaskify-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcccwon2%2Ftaskify-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcccwon2%2Ftaskify-api/lists"}