Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cccwon2/taskify-api

Taskify API
https://github.com/cccwon2/taskify-api

nestjs postresql prisma supabase taskify taskify-api

Last synced: 1 day ago
JSON representation

Taskify API

Awesome Lists containing this project

README

        

# Taskify API

![NestJS](https://img.shields.io/badge/NestJS-10.0.0-E0234E?style=flat-square&logo=nestjs)
![TypeScript](https://img.shields.io/badge/TypeScript-5.1.3-3178C6?style=flat-square&logo=typescript)
![Prisma](https://img.shields.io/badge/Prisma-5.21.1-2D3748?style=flat-square&logo=prisma)
![Swagger](https://img.shields.io/badge/Swagger-8.0.1-85EA2D?style=flat-square&logo=swagger)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-Latest-4169E1?style=flat-square&logo=postgresql)
![JWT](https://img.shields.io/badge/JWT-10.2.0-000000?style=flat-square&logo=jsonwebtokens)
![Supabase](https://img.shields.io/badge/Supabase-Latest-3ECF8E?style=flat-square&logo=supabase)

## πŸ“ 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) νŒŒμΌμ„ μ°Έμ‘°ν•˜μ„Έμš”.