Git Product home page Git Product logo

web-novel's Introduction

웹소설 클론

개요

  • 인기 웹소설 사이트를 바탕으로 웹소설 기능을 클론하는 프로젝트입니다.

실행방법

  • 별도의 설치는 필요하지 않고 ./gradlew clean, ./gradlew bootRun 명령어를 통해 실행할 수 있습니다.
  • 테스트 계정

ERD

erd

기능

  • 소설 등록/작성/삭제
  • 선호작 목록
  • 포인트 충전
  • 소설 편당 조회 및 결제
  • [] 다양한 기준의 소설 목록 조회 기능(홈 노출/베스트/기타)

API

http://localhost:8080/swagger-ui/index.html

사용자

회원가입

  • URL: /api/v1/users/signup
  • Method: POST
  • Request Body
{
    "email": "[email protected]",
    "name": "test2",
    "password": "test"
}

로그인

  • URL: /api/v1/auth/login
  • Method: POST
  • Request Body
{
    "email": "[email protected]",
    "password": "test"
}

사용자 선호도서 가져오기

  • URL: /api/v1/users//{userId}/favorites?page={page}&size={size}
  • Header: Authorization: Bearer {token}
  • Method: GET

상품

상품 등록

  • URL: /api/v1/products
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "name": "스페셜티켓",
    "price": 1000,
    "quantity": 10,
    "productType": "TICKET"
}

상품 상태변경

  • URL: /api/v1/products/{productId}/status
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "ProductStatus": "SELLING',
    "productType": "TICKET"
}

주문

토큰 발급

  • URL: /api/v1/orders/token
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
}

상품주문

  • URL: /api/v1/orders
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "productId": 1,
    "userId": 1,
    "token": {주문토큰}
}

도서

도서 등록

  • URL: /api/v1/books
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "title": "test",
    "categoryId": 1
    "authorId": 1
}

도서 읽기

  • URL: /api/v1/books/{bookId}
  • Method: GET
  • Header: Authorization: Bearer {token}

도서 목록 가져오기

  • URL: /api/v1/books?bookStatus={bookStatus}?page={page}&size={size}
  • Method: GET
  • Header: Authorization: Bearer {token}

도서 상태변경

  • URL: /api/v1/books/{bookId}/status
  • Method: PATCH
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "BookStatus": "SELLING"
}

에피소드

에피소드 등록

  • URL: /api/v1/books/{bookId}/episodes
  • Method: POST
  • Header: Authorization: Bearer {token}
  • Request Body
{
    "title": "test",
    "content": "test",
    "ticketPrice": 1000,
    "page": 50
}

에피소드 읽기

  • URL: /api/v1/books/{bookId}/episodes/{episodeId}
  • Method: GET
  • Header: Authorization: Bearer {token}

web-novel's People

Contributors

etff avatar

Watchers

 avatar

web-novel's Issues

API 호출 시 PREFIX 추가

Is your feature request related to a problem? Please describe.

  • 해당 endpoint가 API임을 명시하는 것이 좋을 것 같습니다.

Describe the solution you'd like

  • URL에 API를 추가합니다. ex) /v2/api/students

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

review bot 추가

Is your feature request related to a problem? Please describe.

  • 코드 리뷰가 필요함

Describe the solution you'd like

  • 리뷰봇을 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

배포 스크립트 분리

Is your feature request related to a problem? Please describe.

  • main, develop 스크립트 분리가 필요합니다

Describe the solution you'd like

  • branch별 스크립트 분리

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

티켓 생성 기능을 추가

Is your feature request related to a problem? Please describe.

  • 티켓 생성 요청을 받아 티켓 상품을 생성합니다

Describe the solution you'd like

  • 티켓 생성 API 생성

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에피소드 읽기 추가

Is your feature request related to a problem? Please describe.

  • 도서에 따른 세부 에피소드가 필요합니다.

Describe the solution you'd like

  • 에피소드 읽기 기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에피소드 등록 기능 추가

Is your feature request related to a problem? Please describe.

  • 에피소드를 등록할 수 있어야합니다.

Describe the solution you'd like

  • 에피소드 등록 기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

사용자 인증기능이 필요합니다

Is your feature request related to a problem? Please describe.

  • 특정한 사용자만 이용 가능해야합니다.

Describe the solution you'd like

  • path별 권한 체크
  • 로그인 기능

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

QueryDSL 설정 정보가 필요합니다

Is your feature request related to a problem? Please describe.

  • 테이블 조인의 결과를 간단하게 처리하기위해 QueryDSL을 추가합니다.

Describe the solution you'd like

  • QueryDSL 설정 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

사용자 엔티티를 추가

Is your feature request related to a problem? Please describe.

  • 사용자 기능이 필요합니다.

Describe the solution you'd like

  • 사용자 엔티티 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

사용자 가입 기능이 필요합니다

Is your feature request related to a problem? Please describe.

  • 인증된 사용자 이용이 필요합니다.

Describe the solution you'd like

  • 사용자 가입기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

북마크 기능 필요

Is your feature request related to a problem? Please describe.

  • 에피소드를 읽고나서 종료버튼 클릭시 마지막으로 읽은 페이지를 기록합니다.

Describe the solution you'd like

  • 에피소드정보와 현재 페이지 정보를 받아와서 기록합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

도서 읽기시 에피소드 정보가 필요

Is your feature request related to a problem? Please describe.

  • 도서 읽기시 에피소드 정보가 필요합니다.

Describe the solution you'd like

  • 도서 조회시 간략한 에피소드 목록과 정보가 필요합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에피소드 추가기능 추가

Is your feature request related to a problem? Please describe.

  • 에피소드를 추가하는 기능이 필요합니다.

Describe the solution you'd like

  • 기존에 있는 도서에 에피소드를 추가합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에피소드 읽기시 사용자 책에 기록합니다.

Is your feature request related to a problem? Please describe.
에피소드 읽기시 사용자 책에 추가된다.

Describe the solution you'd like

  • 사용자 책 추가
  • 에피소드 읽기시 도서 체크

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

상품 생성

Is your feature request related to a problem? Please describe.

  • 티켓등의 상품이 필요합니다

Describe the solution you'd like

  • 상품도메인 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

캐싱기능 추가

Is your feature request related to a problem? Please describe.

  • 캐싱기능을 이용하여 도서 읽기 사용

Describe the solution you'd like

  • 카페인을 사용하여 캐싱

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

도서 읽기 기능 추가

Is your feature request related to a problem? Please describe.

  • 도서 읽기 기능이 없습니다

Describe the solution you'd like

  • 도서 읽기 기능 추가
  • 페이지 기능을 사용하여 읽기 추가

Docker 이미지 푸쉬

Is your feature request related to a problem? Please describe.

  • 도커 이미지를 생성하고 PUSH 하는 기능이 필요합니다.

Describe the solution you'd like

  • github action을 통해 이미지를 생성후 ECR에 이미지를 업로드 합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

상품 주문 기능 추가

Is your feature request related to a problem? Please describe.

  • 상품 주문 기능을 추가합니다.

Describe the solution you'd like

  • 선택한 상품을 구입할 수 있어야합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Best seller 추가

Is your feature request related to a problem? Please describe.

  • 가장 잘 팔린 책을 하루 단위로 가공하여 넣는 작업을 합니다.

Describe the solution you'd like

  • 스프링 배치를 통해 베스트 도서를 상위 10개 선별

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

선호작 목록 가져오기

Is your feature request related to a problem? Please describe.

  • 선호작 목록을 가져와야합니다.

Describe the solution you'd like

  • 소설의 마지막 화, 내가 읽은 마지막 화를 함께 조회할 수 있어야 합니다.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

사용자 티켓 추가

Is your feature request related to a problem? Please describe.

  • 에피소드 구매를 위한 사용자 티켓 추가

Describe the solution you'd like

  • 사용자 티켓 테이블 생성

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에러 핸들링 기능 추가

Is your feature request related to a problem? Please describe.

  • 서버에서 발생하는 에러를 처리할 필요가 있습니다

Describe the solution you'd like

  • 전역 예외 처리 기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

PR시 test 기능 추가

Is your feature request related to a problem? Please describe.

  • PR을 올리면 테스트가 생성되면 좋을 것 같습니다

Describe the solution you'd like

  • github action 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

상품 상태 변경기능 추가

Is your feature request related to a problem? Please describe.

  • 상품 상태를 바꾸는 기능이 필요합니다

Describe the solution you'd like

  • 상품 상태 수정기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

도서 상태수정 추가

Is your feature request related to a problem? Please describe.

  • 등록된 도서 상태를 변경 할 수 있어야합니다.

Describe the solution you'd like

  • 도서 변경기능 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

문서화 도구 추가

Is your feature request related to a problem? Please describe.

  • 문서화를 위한 자동 문서화 도구를 추가합니다.

Describe the solution you'd like

  • swagger 추가

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

에피소드 읽기시 사용자 티켓 차감

Is your feature request related to a problem? Please describe.

  • 에피소드를 읽기 기능 사용시 티켓을 사용해야합니다.

Describe the solution you'd like

  • 에피소드를 읽기시 티켓 차감
  • 티켓 부족시 예외를 던져야합니다

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context

  • 추가적으로 읽기시 마지막 읽기에 내역이 남아야함.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.