- 손님
- 회원가입 (이 때, 손님으로 회원가입) → 회원가입 완료시 1,000,000P 지급
- 로그인 / 로그아웃
- 세탁 서비스 신청하기
- 잔여 포인트가 10,000P 미만이면 세탁 서비스를 신청할 수 없습니다.
- 세탁 서비스를 신청할 시에 10,000P(세탁비)가 깎입니다.
- 세탁 서비스 신청할 때는 다음과 같은 정보들을 입력을 받아야 합니다.
- 손님 닉네임
- 손님 전화번호
- 손님 집 주소
- 손님 세탁물 사진
- 세탁 요청사항
- 내가 신청한 세탁 서비스 상태 파악
대기 중
- 사장님 중 아무도 손님의 세탁물 수거를 신청하지 않은 상황
수거 중
- 사장님 중 한 분이 세탁물 수거를 신청하여 수거를 하러 가는 상황
수거 완료
- 사장님이 수거를 완료한 상황
배송 중
- 사장님이 세탁을 완료하고 배송 중인 상황
배송 완료
- 사장님이 손님의 집 앞으로 세탁물을 배송 완료한 상황
- 세탁 서비스 평점 및 리뷰 작성
- 해당 기능은 사용자가 선택적으로 작성 할 수 있어야 합니다. 의무는 아닙니다.
- 사장님
- 회원 가입 (이 때, 사장님으로 회원가입) → 회원 가입 시 0P 지급
- 로그인 / 로그아웃
- 손님들이 신청한 세탁물 조회
- 조회된 세탁물 중 하나를 세탁 진행
- 사장님이 2개 이상 “세탁 진행”을 할 수 없게끔 합니다. 오로지 하나만 세탁할 수 있습니다.
- 작업 중인 세탁물 상태 업데이트
- 사장님은
수거 완료
→배송 중
→배송 완료
의 3단계로 세탁 상태를 업데이트 할 수 있습니다.- 오로지 위에 나온 순서대로 세탁 상태를 업데이트 할 수 있으며 그 외의 상태 업데이트는 금지합니다.
배송 완료
를 누르면 10,000P를 입금 받습니다.- 본인의 세탁 서비스 평점 및 리뷰 조회
<프로젝트 구조 개선하기>
1. Layered Architecture Pattern을 적용하기
- 요구사항에 맞게 Controller, Service, Repository로 분리된 구조로 구현하기
2. Repository Layer에서 Sequelize Model을 생성자 주입(Constructor Injection)을 이용해 전달받도록 개선하기
<테스트 코드 작성하기>
1. 단위 테스트(Unit Test)
-**Controller
,Service
Layer 내에서 함수 범위로 단위 테스트(Unit Test) 구현하기
- 단위 테스트(Unit Test) 코드 실행 시 데이터베이스에 연결하는 것이 아니라 코드 안에서 데이터를 임시로 정의한 후 테스트하기
2. 통합 테스트(Integration Test)**
1차로 작성한 API 명세서다. 피드백을 받아 수정할 예정이다.
1차로 작성한 ERD다. 역시 피드백을 받으면 수정할 예정이다.
손님이 자신의 세탁물을 신청하고 나서 세탁물의 현재 상태를(수거 또는 배송 상태)확인할 수 있는 페이지를 맡았다.
실시간 업데이트가 되어야 하는데 어떻게 구현해야 할지 고민스럽다.