Skip to content

suhyeoonn/book-rating-backend

Repository files navigation

📚 BookRating API

사용자가 책을 등록하고, 각 책에 대해 별점을 매기고 리뷰를 남길 수 있는 RESTful API를 제공합니다

🚀 주요 기능

  1. 독서 리스트 관리: 사용자가 자신의 리스트에 책을 추가하고, 책의 읽기 상태(읽기 전, 읽는 중, 중단 등)를 관리할 수 있습니다.
  2. 독서 노트 작성: 리스트에 추가한 책에 대해 나만의 메모를 작성할 수 있으며, 해당 메모는 본인만 접근 가능합니다.
  3. 별점 및 한줄평 공유: 사용자가 책에 별점을 부여하고, 한줄평을 작성하여 다른 사용자들과 책 후기를 공유할 수 있습니다.

📦 시스템 구조도

image

이 프로젝트는 Spring Boot 백엔드 애플리케이션, MySQL 데이터베이스, Redis 캐시 데이터베이스를 Docker 컨테이너로 구성하고,
GitHub Actions를 활용하여 AWS EC2에 자동으로 배포를 수행합니다.

🛠 기술 스택

  • JDK: Version 17
  • 프레임워크: Spring Boot 3.3.2
  • 데이터베이스: MySQL, Redis
  • 빌드 도구: Gradle
  • 배포: AWS EC2, Docker
  • CI/CD: GitHub Actions

📊 ERD

image
  • Member: 사용자의 정보를 관리합니다.
  • Book: 책의 제목, 출판사 등 기본 정보를 관리합니다.
  • MemberBook: 사용자의 독서 기록을 관리합니다.
  • Review: 사용자가 책에 남긴 한줄평과 별점 정보를 관리합니다.

📄 API 명세

  • (🔒 인증 필요) 표시가 있는 엔드포인트는 인증된 사용자만 접근할 수 있습니다. 이 API는 세션(인메모리 방식)을 통해 인증을 수행합니다.

/books

  • GET : 모든 책의 목록을 조회합니다.
  • POST : 새로운 책을 등록합니다. (🔒 인증 필요)

/books/{id}

  • PATCH : 특정 책 정보의 제목을 수정합니다. (🔒 인증 필요)
  • DELETE : 특정 책을 삭제합니다. (🔒 인증 필요)

/my-books

  • GET : 사용자가 추가한 모든 개인 책의 목록을 조회합니다. (🔒 인증 필요)
  • POST : 사용자가 개인 책을 나의 리스트에 추가합니다. (🔒 인증 필요)

/my-books/{id}

  • GET : 특정 개인 책의 상세 정보를 조회합니다. (🔒 인증 필요)
  • POST : 특정 개인 책의 읽기 상태(읽기 전, 읽는 중, 중단 등)를 수정합니다. (🔒 인증 필요)
  • DELETE : 사용자가 나의 리스트에서 특정 개인 책을 삭제합니다. (🔒 인증 필요)

/reviews

  • GET : 특정 책에 대한 리뷰 목록을 조회합니다.
  • POST : 책에 대한 리뷰를 등록합니다. (🔒 인증 필요)

/reviews/{reviewId}

  • PATCH : 특정 리뷰를 수정합니다. (🔒 인증 필요)
  • DELETE : 특정 리뷰를 삭제합니다. (🔒 인증 필요)

About

Book rating - Springboot 기반 백엔드 저장소

Topics

Resources

Stars

Watchers

Forks

Packages