Giter Club home page Giter Club logo

ddng's Introduction

About

MSA 아키텍쳐 기반 똥강아지 애견샵 관리 RESTful API 프로젝트.

diagram

Technics

  1. Spring Boot
  2. Spring JPA
  3. Spring Cloud Eureka
  4. Spring Cloud Zuul
  5. RabbitMQ

Services

client

  • application name : ddng-admin-ui
  • port : 8080

eureka-server

  • application name : ddng-eureka-server
  • port : 8761

gate-way

  • application name : ddng-gate-way
  • port : 8090
  • routes
    • /user-api/** : ddng-user-api
    • /customer-api/** : ddng-customer-api
    • /sale-api/** : ddng-sale-api
    • /schedule-api/** : ddng-schedule-api
    • /statistic-api/** : ddng-statistic-api

user-api

  • application name : ddng-user-api
  • port : 8000

customer-api

  • application name : ddng-customer-api
  • port : 8005

sale-api

  • application name : ddng-sale-api
  • port : 8015

schedule-api

  • application name : ddng-schedule-api
  • port : 8020

statistic-api

  • application name : ddng-statistic-api
  • port : 8025

Rabbit MQ

  • port : 5672

ddng's People

Contributors

dependabot[bot] avatar parkilhoon avatar

ddng's Issues

[EFR] 예외처리 개선

기존 기능

무지성 예외처리

수정/개선 요청 내용

예외 클래스 및 핸들러 작성

프로세스

  • api : 핸들러를 통해 예외 내용 리턴
  • ui : 핸들러를 통해 예외 내용 리턴

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

[NFR] 결제 기능 구현

기능 설명

구매할 상품을 선택하고, 결제하는 POS 화면을 구현.

  • 당일 미용, 호텔, 유치원 스케쥴을 결제할 수 있어야함
  • 원하는 상품을 상품명 또는 바코드를 입력해 선택하고 결제할 수 있어야함
  • 고객으로 등록되어있지 않은 고객에게도 판매할 수 있어야함
  • 결제 내용은 이력을 남겨 통계/차트로 활용할 수 있어야함

프로세스

  1. select2 박스에서 원하는 상품이나 바코드를 입력해 상품 목록을 option으로 조회하고 선택하면 결제 목록에 추가
  2. 미용,호텔,유치원 목록의 항목을 선택하면 modal을 띄워 각각 추가적인 정보를 입력해 결제 목록에 추가
  3. 현금/카드 결제 버튼으로 결제를 수행
  4. 결제 완료 시 메시지큐를 발행해 결제 이력과 쿠폰 적립을 수행

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

[NFR] Jenkins CI/CD 세팅

기능 설명

  • 깃헙 Hook을 통해 릴리즈 태그 생성 시 자동으로 빌드 및 도커 레지스트리 업로드, 서버 배포 처리

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

[NFR] 환불 기능 구현

기능 설명

이전에 결제한 내역을 취소/환불하는 기능을 구현한다.

  • 이전 결제 내역을 선택 시, 결제 목록에 구입했던 상품 목록을 출력해야한다
  • 취소/환불 시 결제 내역을 수정하고 적립했던 쿠폰은 회수 처리되야 한다

프로세스

  1. 이전 결제 내역을 선택 시, 결제 목록에 구입했던 상품 목록을 출력
  2. 결제 취소 버튼 클릭 시, 해당 결제 내역의 상태를 수정
  3. 고객에게 해당 결제로 적립한 쿠폰을 회수

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

스케쥴 조회 메서드 QueryDsl 전환

schedule-api/src/main/java/com/ddng/scheduleapi/modules/schedules/repository/SchedulesRepository.java

일정이 토요일~월요일 범위일 경우, 2,3주별 일정에서 보이지 않음.
마찬가지로, 오늘 일정에서도 안보임.

현재 Spring Data Jpa named query를 query dsl로 전환해서 처리하자.

[EFR] DTO, Enum 통합

기존 기능

  • 프로젝트별로 각각 DTO와 Enum 존재

수정/개선 요청 내용

  • 공통 프로젝트 생성해 api간 제공되는 DTO와 Enum 관리

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

[NFR] 캔버스 관리 기능 구현

기능 설명

홈페이지에 오픈되는 캔버스 목록을 관리하는 기능을 구현한다.

  • 기존의 캔버스를 공개/비공개 처리할 수 있어야한다
  • 캔버스 등록 시, 태그를 입력해 홈페이지에서 등록된 태그별 캔버스를 모아볼 수 있어야한다

프로세스

  1. 캔버스 목록에서 캔버스별 공개/비공개 여부 수정
  2. 캔버스 등록 시, 태그 입력
  3. 기존 캔버스 클릭 시, modal을 띄우고 미리보기 이미지와 태그 수정 기능을 제공
  4. 홈페이지에서 캔버스 메뉴에 등록된 태그들을 상단에 띄워주고, 클릭 시 해당 태그가 포함된 캔버스만을 출력

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

[EFR] api 서비스간 호출 코드 리팩토링

기존 기능

RestTemplate를 이용한 코드 존재

수정/개선 요청 내용

Spring Cloud Feign으로 변경

프로세스

수정할 기능 프로세스

연관 프로젝트

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

[NFR] 모니터링 추가

기능 설명

  • 모니터링 애플리케이션 추가
  • Prometheus
  • Grafana

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

[EFR] 서킷 브레이커 및 실패처리 추가

기존 기능

  • 의존 관계의 서비스 api 호출 시점에 예외 및 오류 발생 시 처리가 되어있지않음

수정/개선 요청 내용

  • Spring Cloud Circuit Breaker
  • Resilince4j

프로세스

  • api 호출 시점에 예외 및 오류 발생 시 최대 3회 재시도
  • 재시도 후 실패 시 예외 발생시키고 UI단에는 예외 데이터를 전달

연관 프로젝트

UI[FE]

  • user-ui
  • admin-ui-bootstrap

API[BE]

  • customer-api
  • sale-api
  • schedule-api
  • statistic-api
  • user-api
  • utils-api

INFRA[BE]

  • auth-server
  • eureka-server
  • gate-way
  • MQ

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.