https://github.com/cccwon2/taskify-api
Taskify API
https://github.com/cccwon2/taskify-api
nestjs postresql prisma supabase taskify taskify-api
Last synced: 8 months ago
JSON representation
Taskify API
- Host: GitHub
- URL: https://github.com/cccwon2/taskify-api
- Owner: cccwon2
- License: other
- Created: 2024-11-04T11:38:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-05T05:27:49.000Z (over 1 year ago)
- Last Synced: 2024-11-05T06:24:49.419Z (over 1 year ago)
- Topics: nestjs, postresql, prisma, supabase, taskify, taskify-api
- Language: TypeScript
- Homepage:
- Size: 663 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Taskify API







## π Description
Taskifyλ νμ
μ μν μΉΈλ° λ³΄λ μλΉμ€μ
λλ€. μ¬μ©μλ€μ λμ보λλ₯Ό μμ±νκ³ , νμλ€μ μ΄λνμ¬ ν¨κ» μμ
ν μ μμ΅λλ€.
## β¨ Features
- π Authentication (JWT)
- μ΄λ©μΌ νμκ°μ
/λ‘κ·ΈμΈ
- μμ
λ‘κ·ΈμΈ (Google, Kakao, Naver)
- ν ν° κ°±μ
- π Dashboard Management
- λμ보λ CRUD
- νμ μ΄λ λ° κ΄λ¦¬
- π Kanban Board
- μ»¬λΌ CRUD
- μΉ΄λ CRUD
- μΉ΄λ μ΄λ―Έμ§ μ
λ‘λ
- μΉ΄λ λ΄λΉμ μ§μ
- λκΈ κΈ°λ₯
- π₯ User Management
- νλ‘ν μμ
- νλ‘ν μ΄λ―Έμ§ μ
λ‘λ
## π Tech Stack
### Backend
- NestJS
- TypeScript
- Prisma (ORM)
- PostgreSQL
- Swagger
- JWT
- Passport
### Infrastructure
- Supabase
- PostgreSQL Database
- Storage Buckets
- profiles: νλ‘ν μ΄λ―Έμ§ μ μ₯
- cards: μΉ΄λ μ΄λ―Έμ§ μ μ₯
## π¦ Installation
```bash
$ npm install
```
## π Running the app
```bash
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
```
## π§ͺ Test
```bash
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
```
## π API Documentation
API λ¬Έμλ Swaggerλ₯Ό ν΅ν΄ μ 곡λ©λλ€.
- κ°λ° νκ²½: http://localhost:5000/docs
## π§ Environment Variables
νλ‘μ νΈ μ€νμ μν΄ λ€μκ³Ό κ°μ νκ²½ λ³μκ° νμν©λλ€:
```env
# Supabase μ€μ
SUPABASE_URL="your-supabase-url"
SUPABASE_KEY="your-supabase-key"
SUPABASE_STORAGE_BUCKET_NAME="your-bucket-name"
# Database μ€μ (Supabase PostgreSQL μ°κ²° λ¬Έμμ΄)
DATABASE_URL="your-postgresql-connection-string"
# JWT μ€μ
JWT_SECRET="your-jwt-secret"
JWT_REFRESH_SECRET="your-jwt-refresh-secret"
# ν¬νΈ μ€μ
PORT=5000
# OAuth μ€μ
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
GOOGLE_CALLBACK_URL="http://localhost:3000/auth/google/callback"
KAKAO_CLIENT_ID="your-kakao-client-id"
KAKAO_CLIENT_SECRET="your-kakao-client-secret"
KAKAO_CALLBACK_URL="http://localhost:3000/auth/kakao/callback"
NAVER_CLIENT_ID="your-naver-client-id"
NAVER_CLIENT_SECRET="your-naver-client-secret"
NAVER_CALLBACK_URL="http://localhost:3000/auth/naver/callback"
```
## π Project Structure
```
src/
βββ auth/ # μΈμ¦ κ΄λ ¨
βββ user/ # μ¬μ©μ κ΄λ ¨ (νλ‘ν μ΄λ―Έμ§ μ
λ‘λ ν¬ν¨)
βββ dashboard/ # λμ보λ κ΄λ ¨
βββ column/ # μ»¬λΌ κ΄λ ¨
βββ card/ # μΉ΄λ κ΄λ ¨ (μΉ΄λ μ΄λ―Έμ§ μ
λ‘λ ν¬ν¨)
βββ comment/ # λκΈ κ΄λ ¨
βββ invitation/ # μ΄λ κ΄λ ¨
βββ member/ # λ©€λ² κ΄λ ¨
βββ common/ # κ³΅ν΅ λͺ¨λ
βββ prisma/ # Prisma μ€μ
```
## π License
μ΄ νλ‘μ νΈλ MIT λΌμ΄μΌμ€λ₯Ό λ°λ¦
λλ€. μμΈν λ΄μ©μ [LICENSE](LICENSE) νμΌμ μ°Έμ‘°νμΈμ.