Skip to content

cookyman74/todoapp_by_nestjs

Repository files navigation

프로젝트 개요

이 프로젝트는 NestJS 프레임워크를 학습하기 위해 만들어진 간단한 Todo 앱입니다. 프로젝트의 주요 목표는 NestJS의 핵심 개념을 이해하고, Prisma를 통해 데이터베이스와 상호작용하며, JWT 인증을 이용해 사용자 인증을 구현하는 것입니다.

주요 기능

  • 사용자 인증 및 인가: JWT를 이용한 사용자 인증 (로그인)
  • 할 일(Todo) 관리:
    • 할 일 생성
    • 할 일 목록 조회
    • 할 일 삭제
  • 사용자별 할 일 통계 제공
    • 총 할 일 개수
    • 완료된 할 일 개수
  • API 문서화: 자체 코드로 간략히 구현.

기술 스택

설치 및 실행 방법

1. 레포지토리 클론

git clone https://github.com/yourusername/todo-app.git cd todo-app

2. 의존성 설치

npm install

3. 환경 변수 설정

루트 디렉토리에 .env 파일을 생성하고 다음과 같이 설정합니다:

# PostgreSQL 연결 정보
DATABASE_URL=postgresql://username:password@localhost:5432/todo_db

# JWT 비밀 키
JWT_SECRET=your_jwt_secret

4. 데이터베이스 설정

Prisma를 사용해 데이터베이스 마이그레이션을 적용합니다.

npx prisma migrate dev --name init
npx prisma generate

5. 애플리케이션 실행

npm run start:dev

서버는 **http://localhost:3000**에서 실행됩니다.

주요 엔드포인트

인증 관련

  • POST /auth/login: 사용자 로그인 (JWT 발급)

할 일(Todo) 관리

  • POST /todos: 새로운 할 일 추가
  • GET /todos: 사용자 할 일 목록 조회
  • DELETE /todos/: 할 일 삭제

메인 페이지

  • GET /:
    • API 목록 제공
    • 사용자별 할 일 통계
    • 전체 유저 수 조회

폴더 구조

src
├── auth                # 사용자 인증 모듈 (JWT)
├── todos               # 할 일(Todo) 관리 모듈
├── users               # 사용자 관리 모듈
├── prisma              # Prisma ORM 설정 및 데이터베이스 스키마
├── app.controller.ts   # 메인 컨트롤러
├── app.service.ts      # 메인 서비스
├── main.ts             # 애플리케이션 시작점
└── ...                 # 기타 설정 파일

사용한 라이브러리

기여 방법

이 프로젝트는 NestJS 학습을 위한 목적이므로 기여나 피드백은 언제나 환영합니다. 수정할 사항이 있으면 PR(Pull Request)을 보내주시거나, Issue를 열어주세요.

라이선스

MIT License

About

스터디용

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published