Project/Collabo Project

신발 쇼핑몰 프로젝트

sesam 2023. 8. 4. 20:49
728x90

 

내용

프로젝트명 : JPA Shoes Shopping Mall Project

기간 : 23.07.31-23.08.03

 

다양한 옵션(사이즈, 컬러)이 있는 신발을 구매, 결제, 배송 등의 기능을 통해서 JPA의 흐름과 관계 매핑에 익숙해지고자 신발 쇼핑몰을 주제로 정했다.

view img와 디자인 kream과 abc마트 참고

 

 

<추가 구현 필요>- security, jwt, oauth와 스케줄러를 추가 구현 예정

- 부하가 걸리는 로직에서는 nosql 튜닝

- swagger나 postman 작성 예정

 

Stack

spring boot
security
jwt
oauth
spring scheduler
docs tool (고민중)
spring boot
redis or mongo

 

테이블 설계
  • alert : 재고에 따라 알림을 요청하는 테이블
  • carts : 회원 장바구니
  • deliveries : 회원의 배송정보
  • grade : 회원의 등급 정보
  • grade_history : 회원의 등급의 변경이력
  • order_histories : 회원의 주문 이력
  • interests : 회원의 관심정보
  • inventories : 상품의 재고 정보
  • login_history : 로그인 이력
  • members : 회원정보
  • options : 상품의 사이즈 정보
  • options2 : 상품의 컬러 정보
  • orders : 주문정보
  • payment_history : 결제 이력
  • payments : 결제 정보
  • point : 회원의 포인트 정보
  • products : 상품 정보
  • qas : 상품의 Q&A 정보
  • review_member : 리뷰와 멤버의 중간 테이블
  • reivews : 리뷰 정보 테이블

관계 설정

One-to-One

필요한 1:1 관계들은.. 해당테이블에 다 합쳐주었음.

 

One-to-Many

  • Member 와 Delivery
  • Member 와 Payment
  • Member 와 Payment
  • Member 와 Order
  • Member 와 Carts
  • Member 와 reviewMembers
  • Member 와 qas
  • Products 와 options
  • Products 와 options2
  • Products 와 interests
  • Products 와 qas
  • Products 와 reviews
  • Products 와 orders
  • Products 와 inventories
  • Products 와 carts
  • Products 와 deliveries
  • Order 와 deliveries

중간테이블

  • reviews_member

 

구현기능

member

  1. 회원가입 ( 이메일 인증 )
  2. 로그인 ( security + jwt, Oauth )
  3. 회원 데이터 수정 ( 비밀번호 변경 및 정보 변경 )
  4. 회원 비밀번호 찾기 ( 이메일 임시비밀번호 발송 )
  5. 회원 로그인 이력 노출
  6. 회원 포인트 충전
  7. 회원 포인트 등급 및 정보 노출
  8. 회원 장바구니 리스트
  9. 회원 관심정보 추가 삭제
  10. 회원 주문내역 노출
  11. 회원 배송내역 노출
  12. 상품 리스트 관계 매핑 후 노출
  13. 상품 상세보기
  14. 상품 Q&A 추가 ( 답변은 admin page 미완성으로 db 에 직접 수정 )
  15. 상품 리뷰 작성
  16. 상품 좋아요 ( 미완성 )
  17. 상품 사이즈 및 컬러 복수 쿼리 작성
  18. 배송 내역 상태 1분씩 다음단계로 이전 ( 미완성 )
  19. 구매시 -> 주문테이블 데이터 적재 -> 주문이력 테이블 데이터 적재 -> 재고 테이블 업데이트 -> 결제 테이블 데이터 적재 -> 결제 이력 테이블 데이터 적재 -> 배송 테이블 데이터 적재 -> 회원 포인트 차감 -> admin 테이블 포인트 추가
  20. test코드검증 jacoco 와 api docs 는 추후 적용 예정
  21. 추후 필요에 따라 nosql 튜닝 예정
  22. 배송 단계 스케줄러를 사용해서 1분단위로 배송 status 변경 후 배송완료시 해당 고객에세 socket 으로 실시간 알람 전송
기여
  1. 회원가입 ( 이메일 인증 )
  2. 회원 데이터 수정 ( 비밀번호 변경 및 정보 변경 )
  3. 회원 비밀번호 찾기 ( 이메일 임시비밀번호 발송 )
  4. 회원 로그인 이력 노출
  5. 회원 포인트 충전
  6. 회원 포인트 등급 및 정보 노출
  7. 상품 사이즈 및 컬러 복수 쿼리 작성
VIEW

main

 

상품 레이아웃

로그인

회원가입

mypage

 

장바구니

 

상품 상세

 

구매 및 배송내역

 

 

느낀점

혼자서 설계부터 기능 구현을 해볼 수 있는 프로젝트여서 서버가 어떻게 돌아가는지 알 수 있어서 좋았다.

프론트엔드에서 화면을 구현하면서 의사소통할 수 있는 경험을 할 수 있어서 실무에서 어떻게 일을 하는지 짧게 나마 실습해볼 수 있었다. early return을 통해 위에서부터 예외처리를 해두어 코드가 깔끔해지는 경험을 했다.

clean code를 위해 공부해야겠다.

 

 

 

git(dev2 브랜치) - https://github.com/sesam-me/ShoppingMall

 

GitHub - sesam-me/ShoppingMall

Contribute to sesam-me/ShoppingMall development by creating an account on GitHub.

github.com

 

 

kream_DB.txt
0.00MB