Pbang91 / Cakoo

김기현, 이지원, 박건규

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool



DRF를 적용한 Refactoring을 진행했습니다. Project 당시 고려하지 못한 Stock Model을 일부 적용하였습니다.

Target site

  • 사이트 소개

    Site Link

    꽃을 일상에서 가볍게 즐기는 핀란드의 문화를 한국에 전파하는 것이 목표

    한국에도 멋진 ‘꽃 브랜드’가 생길 수 있다고 믿고 행동하는 사람들이 모인 곳

  • 사이트 선정 이유

    • 깔끔한 UI
    • 이커머스의 기본 기능인 로그인, 회원가입, 상품 조회, 옵션 선택, 장바구니, 주문 기능을 모두 담고 있음




초기기획 & ERD

ERD

image

User flow

초기기획 및 구현 목표

  • 짧은 기간동안 기능구현에 집중해야하므로 사이트의 디자인과 기획만 클론
  • 개발은 초기세팅부터 전부 직접 구현
  • 필수 구현 사항을 회원가입, 로그인, 상품 조회, 장바구니, 주문기능으로 설정
  • 한 상품에 여러 옵션(사이즈)이 적용될 수 있게 기획




개발기간 및 팀원

  • 개발기간

    2022.02.28 ~ 2022.03.10

  • 개발인원 및 파트

    • Front-end

      • 신윤숙 - Login, Order
      • 전슬기 - Product List, Product Detail
      • 김준영 - Sign Up, Cart
    • Back-end

      • 김기현 - SignUp, Product List API, Order API
      • 이지원 - Cart API
      • 박건규 - SignUp, SignIn, Product Detail API, Order API


적용 기술 및 구현 기능

  • 기술 스택

    • Front-end

    • Back-end

    • Common

    • Communication

  • 구현기능

    • 회원가입 / 로그인
      • 정규 표현식을 통한 이메일아이디 및 비밀번호 유효성 검사
      • 비밀번호 암호화 및 JWT 발급
      • request.header에 담긴 token을 통해 로그인 여부를 검사
    • 상품 리스트 페이지
      • 판매 상품의 분류에 따라 filtering
      • 사용자가 원하는 기준에 따라 sorting
    • 상품 상세 페이지
      • 상품 상세페이지에 필요한 데이터를 products와 product_size, size 테이블에서 필터링 하여 엔드 포인트로 전달
      • 필요한 옵션을 선택하여 장바구니로 저장할 수 있도록 구현
    • 장바구니
      • 장바구니 상품 추가, 조회, 수량 수정, 선택 삭제 기능 구현
    • 주문
      • 장바구니에서 넘겨받은 정보를 넘겨받아 구매
      • 일련의 과정에 원자성을 부여하기 위해 transaction 사용
      • 구매 한 상품은 장바구니에서 삭제


API 기능정의서

https://documenter.getpostman.com/view/19578089/Uyr4Lg2t

  • 포스트맨을 이용해 API 문서화를 진행했습니다.
  • 이번 프로젝트에서 쿼리파라미터(size, price, created, offset, limit 등)로 많은 값들을 받아야했기 때문에 API 문서화가 굉장히 중요했습니다.
  • 프론트엔드와 소통 시 문서를 통해 1차적으로 커뮤니케이션 비용을 줄일 수 있었습니다.




시연 영상

Youtube



Reference

  • 이 프로젝트는 꾸까 사이트를 참조하여 학습목적으로 만들었습니다.
  • 실무수준의 프로젝트이지만 학습용으로 만들었기 때문에 이 코드를 활용하여 이득을 취하거나 무단 배포할 경우 법적으로 문제될 수 있습니다.
  • 이 프로젝트에서 사용하고 있는 사진 대부분은 위코드에서 구매한 것이므로 해당 프로젝트 외부인이 사용할 수 없습니다
  • 이 프로젝트에서 사용하고 있는 로고와 배너는 해당 프로젝트 팀원 소유이므로 해당 프로젝트 외부인이 사용할 수 없습니다

Footer

About

김기현, 이지원, 박건규


Languages

Language:Python 100.0%