Skip to content

highVTest/E-Commerce

Repository files navigation

소상공인을 위한 플랫폼 - Made By

팀원 소개

김도균 류원형 김형섭 정혜린 최민수
김도균 류원형 김형섭 정혜린 최민수
@Ppajingae @1hyung @hysup @DEVxMOON @HifumiAlice

개요

  • 프로젝트 이름: Made By.
  • 프로젝트 지속기간: 2024.07.12 ~ 2024.08.22
  • 개발 엔진 및 언어: Kotlin

프로젝트 설명

아이디어는 있지만 대량 생산이 부담스러운 소상공인들이 직접 제작한 소량의 제품을 쉽게 판매하고, 구매자들이 다양한 아이디어 제품을 구매할 수 있도록 지원하는 플랫폼입니다. 관리자, 구매자, 판매자 간의 긴밀한 연결을 통해 원활한 거래 환경을 제공합니다.

배포용 링크: Made By

테스트용 계정 정보:

구현 목적

  • 소규모의 다양한 상품을 쉽게 거래할 수 있는 플랫폼의 필요성
  • 타겟 사용자:
    • 일반 소비자(구매자)
    • 소규모 사업자(판매자)

🧮 프로젝트 구조

간략 기능 구현 사항

펼쳐서 보기

공통 기능

  • 메인 화면: 최근 등록된 상품 리스트 제공.
  • 상품 확인: 상품 이미지, 설명, 가격, 다른 구매자들이 작성한 리뷰와 평점 등의 상세 정보 을 통해 구매 결정 지원.
  • 상품 검색: 시간, 가격순으로 상품을 검색하고 정렬할 수 있는 기능 제공.

구매자 기능

  • 회원가입 및 프로필 관리: 기본 정보 관리, 회원 탈퇴 기능.
  • 상품 구매: 장바구니, 결제 및 배송지 관리.
  • 구매 이력: 주문 내역 조회, 주문 상세 보기, 배송 추적.
  • 리뷰: 상품 리뷰 작성 기능.
  • 쿠폰 발급 : 쿠폰 발급 및 사용 가능

판매자 기능

  • 회원가입 및 프로필 관리: 판매자 정보 등록 및 인증 절차.
  • 상품 등록: 상품 정보 등록, 수정, 삭제 기능.
  • 백오피스: 판매, 재고, 주문 상태 관리.
  • 쿠폰 기능 : 쿠폰 관리 (가격 및 할인율 쿠폰으로 관리 가능)

관리자 기능

  • 회원 관리: 판매자/구매자 계정 정보 조회 및 관리, 신고 처리.
  • 승인 대기 회원 관리: 판매자 가입 승인/거부 관리.

🛠️ Tech Stacks

✔️Front-end

✔️Back-end

Spring Spring Boot Redis

🚀 Infra

🤝 협업 도구

  • Git
  • GitHub
  • Slack
펼쳐서 보기

프로젝트 아키텍처

펼쳐서 보기

화면구성

펼쳐서 보기

ERD Image

펼쳐서 보기
src
├─main
│  ├─kotlin
│  │  └─com
│  │      └─highv
│  │          └─ecommerce
│  │              ├─common
│  │              │  ├─dto
│  │              │  ├─exception
│  │              │  │  ├─dto
│  │              │  │  └─handler
│  │              │  ├─image
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─innercall
│  │              │  ├─lock
│  │              │  │  └─service
│  │              │  └─type
│  │              ├─domain
│  │              │  ├─admin
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─auth
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─oauth
│  │              │  │  │  ├─client
│  │              │  │  │  │  └─config
│  │              │  │  │  ├─Controller
│  │              │  │  │  ├─converter
│  │              │  │  │  ├─kakao
│  │              │  │  │  │  └─dto
│  │              │  │  │  └─naver
│  │              │  │  │      └─dto
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─backoffice
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  │  ├─productbackoffice
│  │              │  │  │  ├─salesstatics
│  │              │  │  │  └─sellerInfo
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─buyer
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  │  ├─request
│  │              │  │  │  └─response
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─coupon
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─enumClass
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─favorite
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─item_cart
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  │  ├─request
│  │              │  │  │  └─response
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─order_details
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─enumClass
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─order_master
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─product
│  │              │  │  ├─category
│  │              │  │  │  ├─controller
│  │              │  │  │  ├─dto
│  │              │  │  │  ├─entity
│  │              │  │  │  ├─repository
│  │              │  │  │  └─service
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  ├─review
│  │              │  │  ├─controller
│  │              │  │  ├─dto
│  │              │  │  ├─entity
│  │              │  │  ├─repository
│  │              │  │  └─service
│  │              │  └─seller
│  │              │      ├─controller
│  │              │      ├─dto
│  │              │      ├─entity
│  │              │      ├─repository
│  │              │      ├─service
│  │              │      └─shop
│  │              │          ├─dto
│  │              │          ├─entity
│  │              │          └─repository
│  │              └─infra
│  │                  ├─email
│  │                  │  └─config
│  │                  ├─mongodb
│  │                  ├─queryDSL
│  │                  ├─redis
│  │                  │  ├─config
│  │                  │  └─redisson
│  │                  ├─s3
│  │                  │  └─config
│  │                  ├─security
│  │                  │  └─jwt
│  │                  └─swagger
│  └─resources

세부 기능 구현 사항

펼쳐서 보기

공통 기능

  • 메인 화면
    • 최근 상품 리스트:
      • 최신 상품 제공.
  • 상품 확인
    • 상세 정보 보기:
      • 상품의 이미지, 설명, 가격 등을 상세히 제공.
    • 리뷰 및 평점 보기:
      • 다른 구매자들이 작성한 리뷰와 평점을 통해 신뢰성 있는 구매 결정을 지원.
  • 상품 검색
    • 필터 및 정렬 기능:
      • 사용자가 상품을 이름, 가격, 최신 순으로 검색하고 정렬할 수 있는 기능 제공.

구매자 기능

  • 회원가입 및 프로필 관리
    • 회원가입:
      • 기본 정보 입력 및 이메일 인증 절차를 통해 회원가입 진행.
    • 프로필 관리:
      • 사용자 정보를 수정할 수 있는 기능 제공.배송지 정보 및 연락처 관리.
    • 회원 탈퇴:
      • 간편한 회원 탈퇴 절차를 통해 사용자에게 선택권 제공.
  • 상품 구매 기능
    • 장바구니:
      • 사용자가 선택한 상품을 저장하고 결제 전 확인할 수 있는 기능.
    • 배송지 관리:
      • 여러 배송지를 등록하고 선택할 수 있는 기능 제공.
  • 구매 이력 확인
    • 주문 내역 조회:
      • 사용자가 과거의 주문 정보를 쉽게 확인할 수 있는 기능.
    • 주문 상세 보기:
      • 특정 주문에 대한 상세 정보 제공.
  • 리뷰 및 피드백
    • 상품 리뷰 작성:구매자가 상품에 대한 평점과 리뷰를 남길 수 있는 기능.
  • 쿠폰 발급 기능
    • 판매자가 등록한 쿠폰을 발급 및 결제시 사용이 가능한 기능
    • 쿠폰 사용시 할인가가 적용된 금액만큼 차감 결제

판매자 기능

  • 회원가입 및 프로필 관리 기능
    • 회원가입:
      • 판매자 전용 정보 입력 및 인증 절차를 통해 회원가입.
    • 상점 정보:
      • 상점명, 발송지 정보, 전화번호 등을 등록할 수 있는 기능.
    • 인증 절차:
      • 이메일 인증을 통해 신뢰성 있는 판매자 등록.
  • 상품 등록 관련
    • CREATE:
      • 판매자가 상품 정보를 등록할 수 있는 기능.
    • UPDATE:
      • 판매 중인 상품 정보를 수정할 수 있는 기능 제공. 일부 필드는 절대 수정 불가 설정.
    • DELETE:
      • 판매자가 상품 정보를 삭제할 수 있는 기능.
  • 백오피스 기능
    • 판매 및 재고 현황:
      • 판매 품명, 가격, 총 판매량, 매출, 잔여 재고 등을 한눈에 볼 수 있는 대시보드 제공.
    • 주문 상태 관리:
      • 구매자로부터 들어온 주문의 상태를 확인하고, 주문 처리를 위한 다음 단계로 진행할 수 있는 기능.
  • 쿠폰 기능 :
    • 쿠폰 관리 (가격 및 할인율 쿠폰으로 관리 가능)
    • 쿠폰은 최대 40% 까지 할인 가능, 가격으로는 최대 50000원 까지 할인 가능

관리자 기능

  • 회원 관리:
    • 판매자 및 구매자 계정의 정보를 조회하고 상태를 관리.
    • 필요 시 사용자 신고 처리 및 제재 조치 가능.
  • 승인 대기 회원 관리:
    • 판매자 회원가입 승인 및 거부를 관리하여 신뢰성 있는 플랫폼 운영.

🎞 프로젝트 시연 영상

구매자

  • 상품페이지

    펼쳐서 보기
  • 결제

    펼쳐서 보기
  • 환불

    펼쳐서 보기
  • 마이페이지

    펼쳐서 보기
  • 찜하기

    펼쳐서 보기
  • 리뷰

    펼쳐서 보기
  • 필터

    펼쳐서 보기
  • 장바구니

    펼쳐서 보기
  • 쿠폰

    펼쳐서 보기

판매자

  • 상품 삭제

    펼쳐서 보기
    상품 삭제
  • 상품 생성

    펼쳐서 보기
    상품생성.mp4
  • 상품, 수량, 가격 수정 및 쿠폰 등록

    펼쳐서 보기
    상품, 수량, 가격 수정 및 쿠폰 등록.mp4
  • 환불 승인, 거절

    펼쳐서 보기
    환불 승인, 거절
  • 주문 상태 관리

    펼쳐서 보기
    주문상태관리.mp4
  • 판매자 백오피스

    펼쳐서 보기
    판매자 백오피스

관리자

  • 승인 대기 판매자 관리

    펼쳐서 보기
    승인 대기 판매자 관리
  • 블랙리스트 관리

    펼쳐서 보기
    블랙리스트 관리

✏️ 개발 계획

개발 일정:

6주 마일스톤:

  • 1주차 : 프로젝트 기획 및 기본 CRUD 개발

  • 2주차 : 구체적인 기능 개발 , 캐싱 처리 및 코드 리펙터링 진행

  • 3주차 : 프론트앤드 개발 및 1차 서버 배포 진행

  • 4주차 : 동시성 제어 및 성능 테스트 진행 & 추가 적인 기능 개발

  • 5주차 : 2차 배포 및 성능 최적화 작업 , 버그 수정

  • 6주차 : 최종 배포 및 발표 준비

현재 진행 상황

기본 기능 구현 후 FE와 연결 및 FE+BE 배포

⚙️ 환경설정

  • Language: Kotlin
  • Framework: Spring Boot
  • IDE: IntelliJ Community Edition
  • JDK: Temurin-17
  • Database: MySQL 8.0.35

프로젝트 후기

😈 김도균

여러분들이 많이 도와주신 덕분에 무사히 팀장 역할을 수행 할 수 있었던 것 같습니다 정말 감사합니다 덕분에 정말 많이 배웠고 깨달았습니다 나중에 현업에서 다들 좋은 모습으로 뵙겠습니다!!

😆 류원형

부트캠프에 참여하면서 처음으로 코드를 접하게 되었고, 이번 프로젝트를 통해 많은 새로운 기술들을 처음으로 적용해보았습니다. Spring Framework, Kotlin 문법, JPA, SQL 쿼리, Redis 등 다양한 기술을 접하며 공부할 수 있는 좋은 기회가 되었지만, 동시에 많은 어려움과 부족함을 느꼈습니다.

이 과정에서 팀원들로부터 많은 것을 배울 수 있었고, 더 나은 개발자가 되기 위해 제 부족한 부분을 파악하고 이를 추후에 보완해야겠다는 생각을 많이 하게 되었습니다.

함께해 준 팀원들에게 깊은 감사의 마음을 전하며, 앞으로 저도 성장하여 팀에 기여할 수 있는 개발자가 되고 싶습니다.

🍹 김형섭

기능구현에서 어려움이 많았지만 팀원들 덕분에 잘 해결할수 있었고 많이 배웠다고 생각합니다

🍀 정혜린

이번 6주간의 프로젝트를 통해 개발자로서 기본적으로 갖추어야 할 역량이 무엇인지 깊이 깨닫는 시간을 가진 것 같습니다. 이 프로젝트를 통해 spring framework, kotlin 문법, JPA, SQL 쿼리, Redis 등 다양한 기술을 접하고 공부할 수 있는 좋은 기회가 되었습니다. 팀원들과 함께 프로젝트를 완성해 나가면서, 무언가를 창조하고 그 결과물이 눈앞에 보이는 것이 얼마나 큰 보람인지 실감할 수 있었습니다. 역시 프로젝트의 진행에는 기술뿐만 아니라 커뮤니케이션 능력도 매우 중요단 점도 느끼게 되었구요.

이번 프로젝트에서는 부족한 점도 많았다고 느꼈지만, 매번 이렇게 쌓여가는 경험들이 저를 더 나은 개발자로 성장시켜 줄 것이라 생각하고 있습니다. 다음 프로젝트에서는 한층 더 발전한 모습이겠죠?(///)

마지막으로, 팀원들 모두에게 진심으로 감사의 인사를 전합니다.

😼 최민수

쿼리를 줄이는 작업이;;; 즐거웠습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages