1. 우리 쇼핑몰은 와인 전문 판매 쇼핑몰입니다.
2. 구매자의 목적/성별/연령 등에 따라 Our Pick, Best Pick을 제안해줍니다.
3. 와인을 처음 접하는 사람도 친숙한 인터페이스와 카테고리화를 통해 쉽게 접근할 수 있습니다.
4. 와인을 잘 아는 사람을 위해 카테고리 세분화를 통해 원하는 상품을 쉽게 찾을 수 있습니다.
5. 이 쇼핑몰에서 와인을 처음 접한 사람이 계속해서 다시 방문하게 하는 것을 목표로 합니다.
- 우리는 와인을 판매합니다.
- 와.. 이게 되네? (why is this working?)
- whine : 불평하다 / wine : 와인 / why : 왜?
- why + wine ⇒ (whine) ⇒ whine-is-this-working?
| 이름 | 파트 | 담당 업무 |
|---|---|---|
| 최도원 | Back-End | 👑팀장, 🔊발표, VM 서버 배포&관리, 주문 파트 API 구현, 에러핸들러 제작, 이미지 업로드용 Multer 제작, 백엔드 소통 담당, |
| 연정환 | Back-End | 회원파트, 로그인, 회원가입, 수정, 탈퇴, 토큰 발급 및 검증, 관리자&사용자 구분 |
| 신민석 | Back-End | 상품&카테고리 파트 API 구현, JOI 구현, GitLab Wiki 및 노션 회의록 작성, 서비스 개요 작성 |
| 장윤수 | Front-End | 전체적인 레이아웃, 관리자페이지 구현 및 공용 API, context 설계, 디테일한 디자인작업 |
| 고병욱 | Front-End | 상품세부정보, 마이페이지 관련 페이지 제작 |
| 이수현 | Front-End | 상품목록, 회원가입, 로그인, 장바구니, 주문/결제, 상품세부정보 페이지 제작, PPT 제작 |
witw
├── backend
│ ├── src
│ │ ├── db
│ │ │ ├── schemas
│ │ │ ├── models
│ │ │ └── index.js
│ │ ├── middlewares
│ │ ├── routers
│ │ ├── services
│ │ └── app.js
│ └── index.js
└── FrontEnd
├── public
├── src
│ ├── api
│ ├── components
│ │ ├── admin
│ │ ├── store
│ │ ├── UI
│ │ └── user
│ ├── pages
│ │ ├── admin
│ │ ├── auth
│ │ ├── user
│ │ └── main-pages.jsx
│ ├── App.jsx
│ ├── index.js
│ └── reportWebVitals.js
└── postcss.config.js
이름 : 엘리스
나이 : 20대 후반 ~ 30대 초반
직업 : 직장인
- 와인에 대해 잘 모르지만 기념일에 쓸 와인을 사고 싶음,
- 지금은 와인을 잘 모르지만 괜찮다면 와인을 자주 구매할 의향이 있음
- 유저 관련 기능 : 회원가입, 로그인, 회원정보수정, 회원탈퇴가 가능합니다.
- 상품 관련 기능 : 상품 목록 CRUD가 구현되어 있고, 관리자는 상품 목록 전체 조회 / 상품 추가&정&삭제 / 카테고리 추가&수정&삭제가 가능합니다. 사용자는 type / country / price / recomme ndation 등 조건에 맞는 상품을 조회할 수 있습니다.
- 주문 관련 기능 : 장바구니 사용이 가능하고, 주문 관련 CRUD가 구현되어 있습니다. 관리자는 모든 주문내역을 확인할 수 있고, 주문내용 삭제 / 배송상태 변경 / 운송장번호 변경이 가능합니다. 사용자는 주문 / 주문내역 조회 / 배송정보 수정 / 주문 취소가 가능합니다.
- npm install express
- npm install cors
- npm install bcrypt
- npm install nanoid
- npm install dayjs
- npm install jsonwebtoken
- npm install dotenv
| API Address | Request | Params | Description | |
|---|---|---|---|---|
—————<Orders>————— |
||||
| GET | /api/orders | admin 모든 주문 정보 조회 |
||
| GET | /api/orders/:userid | E-mail ID | 해당 ID를 쓰는 유저의 주문 정보 조회 | |
| GET | /api/orders/order/:index | 주문 번호 | 주문번호로 주문정보 조회 (상세검색) | |
| POST | /api/orders | 주문 정보 | 새 주문정보 생성 | |
| DELETE | /api/orders/admin/:number | 주문 번호 | admin 주문 삭제 |
|
| DELETE | /api/orders/:number | 주문 번호 | 배송 시작 전 주문 건의 주문 취소 | |
| PATCH | /api/orders/information | 주문 변경내역 | 배송 시작 전 주문 건의 주문 내용 변경 | |
| PATCH | /api/orders/shippingstatus | 배송 상태 | admin 배송 시작 전 주문 건의 배송 상태 변경 |
|
| PATCH | /api/orders/waybill | 운송장 번호 | admin 배송 중인 주문 건의 운송장 번호 변경 |
|
—————<Users>————— |
||||
| POST | /api/users/signup | 회원가입 | ||
| POST | /api/users/login | 로그인 | ||
| PATCH | /api/users | 유저정보수정 | ||
| DELETE | /api/users | 회원 탈퇴 | ||
| PATCH | /api/users/role-info | super-admin 사용자 권한 변경 |
||
| GET | /api/users/alluser | 전체 유저 조회 | ||
————<Products>———— |
||||
| GET | /api/products | 상품 목록 전체 조회 | ||
| GET | /api/products/:id | 상품 ID | 상품 ID로 상품 상세 조회 | |
| GET | /api/products/types/:type | 상품 타입 | 상품 타입별로 상품 목록 조회 | |
| GET | /api/products/countries/:country | 상품 나라 | 상품 나라별로 상품 목록 조회 | |
| GET | /api/products/prices/:min/:max | 상품 가격(최소-최대) | 가격의 최솟값, 최댓값 사이의 상품 목록 조회 | |
| GET | /api/products/lists/picked | Picked 상품 조회 | ||
| GET | /api/products/lists/best | Best 상품 조회 | ||
| POST | /api/products | 새 상품 정보 | 상품 추가 | |
| PUT | /api/products/:id | 변경할 정보 | 상품 ID | ID에 맞는 상품 수정 |
| PATCH | /api/products/images/:id | 변경할 이미지 | 상품 ID | ID에 맞는 상품 이미지 수정 |
| PATCH | /api/products/:id/:saleState | 판매 상태 | 상품 ID, 판매 상태 | ID에 맞는 상품의 판매 상태만 수정 |
| DELETE | /api/products/:id | ID에 맞는 상품 삭제 | ||
————<Categories>———— |
||||
| GET | /api/categories | 카테고리 목록 조회 | ||
| GET | /api/categories/:title | 카테고리 이름으로 카테고리 조회 | ||
| POST | /api/categories | 카테고리 정보 | 카테고리 추가 | |
| PATCH | /api/categories/:id | 카테고리 정보 | 카테고리 ID | ID에 맞는 카테고리 수정 |
| DELETE | /api/categories/:id | 카테고리 ID | ID에 맞는 카테고리 삭제 |
Front - End
- React
- tailwindcss
- JavaScript
- styled components
Back - End
- Node.js
- Express.js
- MongoDB
피그마 링크 : https://www.figma.com/file/EM4HvIdJLbfFOG4d9AZCv8/Untitled?node-id=0-1t=FLTBiv5qqQpDmWJf-0
- URL, URI는 REST API 규칙에 따른다.
- 파일명의 띄어쓰기는 "-" (하이픈) 으로 연결한다.
- Class는 대문자로 시작하는 Upper Camel Case를 사용한다.
- 일반 변수명은 소문자로 시작하는 Lower Camel Case로 통일한다.
- 백엔드는 3계층 구조로 설계한다. (Router, Service, Model)
feature#FE
/
master -----dev
\
feature#BE - feature#BE#order / feature#BE#user / feature#BE#product
