GithubHelp home page GithubHelp logo

investment's Introduction

Introduction

여러분은 투자 서비스의 백엔드 개발자입니다.

  • 사용자는 원하는 투자 상품을 투자할 수 있습니다.
  • 투자상품이 오픈될 때, 다수의 고객이 동시에 투자를 합니다.
  • 투자 후 투자상품의 누적 투자모집 금액, 투자자 수가 증가됩니다.
  • 총 투자모집금액 달성 시 투자는 마감되고 상품은 sold out 됩니다.

이번 과제에서는 REST API를 구현하는 것이 목표입니다.

위 목표와 아래의 요구사항을 만족하는 API서비스를 자유롭게 정의하여 구현해주시면 됩니다.

기능 요구사항

1. API 목록

  1. 전체투자상품 조회 API
  2. 투자하기 API
  3. 나의 투자상품 조회 API
  4. 투자취소하기 API

2. 공통사항

  • 요청한 사용자 식별값은 숫자 형태이며 “X-USER_ID”라는 HTTP Header로 전달됩니다.
  • 채점용 테스트코드 외에 단위테스트를 작성합니다.
  • Request/Response JSON은 채점용 테스트코드를 참고합니다.
  • 각 투자상품의 필요한 정보는 아래와 같습니다. (상품명, 총 투자모집금액, 투자 시작일시, 투자 종료일시)

상세 요구 사항

1. 투자 가능 상품 조회 API

  • 상품 모집기간내(투자 시작일시 ~ 투자 종료일시)의 상품만 응답합니다.
  • Response에는 아래의 값을 포함합니다.
    • 상품 ID
    • 상품명
    • 총 모집금액
    • 현재 모집금액
    • 투자자 수
    • 상품 모집기간(투자 시작일시, 투자 종료일시)

2. 투자하기 API

  • Request에는 아래의 값을 포함합니다.
    • 사용자 식별값
    • 상품 ID
    • 투자 금액
  • 총 투자모집금액이 남아 있지 않다면 실패 상태를 응답합니다.
  • 투자요청한 금액이 투자가능금액보다 클 경우 실패로 처리힙니다.

3.나의 투자상품 조회 API

  • 내가 투자한 모든 상품을 반환합니다.(취소한 상품도 조회 가능)
  • Response에는 아래의 값을 포함합니다.
    • 투자 ID
    • 상품 ID
    • 상품명
    • 총 모집금액
    • 나의 투자금액
    • 투자상태
    • 투자일시

4. 투자취소하기 API

  • Request에는 아래의 값을 포함합니다.
    • 사용자 식별값
    • 상품ID
  • 취소가 되더라도 상품의 상태는 변경되지 않습니다.
  • 취소가 되더라도 나의 투자상품 조회에서는 취소 조회가 되어야합니다.

기술 요구 사항

전달해준 프로젝트에서 작성합니다.
SpringBoot + H2로 환경에서 시작합니다.
기본적으로 필요한 기술은
Java, REST API, Spring boot, JPA, H2이며 스스로 판단하여 추가적인 기술은 추가하여 사용합니다.
(적절한 아키택처 사용 평가)

평가항목

  • 채점용 테스트코드를 통과하는가? (만점 60점)
  • 요구사항을 잘 이해하고 구현하였는가?(10점)
  • 적절한 아키텍처 사용을 하였는가? (점수 10점)
  • 의도가 명확하고 가독성이 좋은 코드인가?(점수 5점)
  • 적절한 단위테스트를 작성하였는가?(추가점수 10점)
  • JPA사용시 (추가점수 5점)

investment's People

Contributors

cookyuu avatar baki-719 avatar

Watchers

 avatar

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.