Skip to content

Nodejs, Express, JavaScript, MySQL 을 사용하여 개발한 WISH BOARD API 서버 🔫🔫

Notifications You must be signed in to change notification settings

hyeeyoung/wishboard-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2f91349 · Dec 5, 2022
Sep 27, 2022
Sep 10, 2022
Dec 5, 2022
Jan 30, 2022
Jan 30, 2022
Jan 22, 2022
Sep 13, 2022
Sep 9, 2022
Mar 29, 2022
Sep 10, 2022
Sep 10, 2022
Sep 6, 2022
Sep 6, 2022

Repository files navigation

Wishboard

app_logo


위시리스트 통합관리 앱, 위시보드(Wishboard)

Timeline: 21.9.26 ~

TEAM: Hyeeyoung


Contents


About Wishboard

thumbnail

화면 캡처나 페이지 즐겨찾기, 카톡 나에게 보내기는 이제 그만! Wishboard로 간편하게 위시리스트를 통합 관리해 보세요😉

여러 쇼핑몰 플랫폼에 흩어져있는 아이템들, 사고 싶은 아이템을 링크 공유로 Wishboard에 저장합니다. 저장 시 아이템의 재입고 날짜, 프리오더 날짜와 같이 상품 일정을 설정하면 알림을 보내줍니다.

구매할 아이템은 장바구니에 담아서 최종 결제 금액을 예상해보고, 폴더로 아이템을 보기 쉽게 정리할 수 있습니다!


Feature

분류 세부 기능 진척도
auth 회원가입
auth 로그인
auth 이메일 인증
auth 비밀번호 없이 로그인
auth 사용자 비밀번호 변경
auth 사용자 회원 정보 삭제 배치 작업
item 홈화면 및 상세화면 조회
item, noti 아이템 등록 및 알림 추가
item, noti 아이템 수정 및 알림 수정/추가/삭제
item, folder 아이템 수정 시 폴더 추가
item 아이템 파싱 정보 가져오기
item 아이템 삭제
noti 푸쉬 알림 설정 및 배치 작업
noti 알림 캘린더 조회
cart 장바구니 추가
cart 장바구니 수정
cart 장바구니 삭제
cart 장바구니 조회
cart 장바구니 공유 배포 이후
folder 폴더, 폴더리스트, 폴더 내 아이템 조회
folder 폴더 추가
folder 폴더 수정
folder 폴더 삭제
my 사용자 정보 조회
my 사용자 정보 수정
my 회원 정보 탈퇴
search 검색 기능 배포 이후

Contributors

김혜정 / Server 최영진 / Android & Design

Develop Environment

  • Develop
- Visual Studio Code
- Npm 6.14.16
- Node 16.13.2
- MySQL 5.7.37
- JavaScript
  • DevOps
- AWS EC2 프리티어 (Ubuntu 18.04 LTS)
- AWS S3
- Nginx 1.14.0
- Git Action
- PM2 5.7.2

ERD

image

Architecture

wishboard 서버 아키텍처

Dependencies module

  • aws-sdk, multer, multer-s3 : 이미지 저장을 위한 작업시 사용
  • bcrpytjs : 회원 정보 저장 시 비밀번호 암호화를 위해 사용
  • passport, passport-local, passport-jwt, jsonwebtoken : 회원가입 및 로그인 서비스 이용과 jwt 생성을 하여 클라이언트와 작업 시 사용
  • dotenv : 중요 비밀 정보 파일 저장을 위해 사용
  • morgan, winston, winston-daily-rotate-file : http 요청에 따른 log 파일 저장을 위해 사용
  • node-schedule : 회원 정보 탈퇴 배치 시 사용
  • node-mailer : 비밀번호 없이 로그인 시 이메일 인증을 위해 사용
  • webpack : build 파일 압축을 위해 사용
  • axios : 슬랙에 에러 메시지 보낼 때 또는 아이템 파싱 시 사용
  • cheerio : 아이템 정보를 파싱하여 클라이언트에게 전달할 때 사용
"dependencies": {
    "app-root-path": "^3.0.0",
    "aws-sdk": "^2.1145.0",
    "axios": "^0.26.1",
    "bcryptjs": "^2.4.3",
    "cheerio": "^1.0.0-rc.10",
    "dotenv": "^10.0.0",
    "express": "^4.17.1",
    "express-rate-limit": "^6.5.1",
    "helmet": "^5.0.2",
    "hpp": "^0.2.3",
    "jsonwebtoken": "^8.5.1",
    "lodash": "^4.17.21",
    "morgan": "^1.10.0",
    "multer": "^1.4.4",
    "multer-s3": "^2.10.0",
    "mysql2": "^2.3.0",
    "node-schedule": "^2.1.0",
    "nodemailer": "^6.7.2",
    "passport": "^0.5.0",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "winston": "^3.5.1",
    "winston-daily-rotate-file": "^4.5.5"
  },
"devDependencies": {
    "eslint": "^8.7.0",
    "eslint-config-google": "^0.14.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-prettier": "^4.0.0",
    "prettier": "2.5.1",
    "webpack": "^5.65.0",
    "webpack-cli": "^4.9.1"
}

Directory Structure

📦src
┣ 📂config
┃ ┣ 📜db.js
┃ ┣ 📜passport.js
┃ ┣ 📜winston.js
┣ 📂controllers
┃ ┣ 📜authControllers.js
┃ ┣ 📜cartControllers.js
┃ ┣ 📜folderControllers.js
┃ ┣ 📜itemControllers.js
┃ ┣ 📜notiControllers.js
┃ ┣ 📜userControllers.js
┣ 📂dto
┃ ┣ 📜cartResponse.js
┣ 📂middleware
┃ ┣ 📜auth.js
┃ ┣ 📜handleError.js
┃ ┣ 📜mailTransport.js
┣ 📂models
┃ ┣ 📜cart.js
┃ ┣ 📜folder.js
┃ ┣ 📜item.js
┃ ┣ 📜noti.js
┃ ┣ 📜user.js
┣ 📂routes
┃ ┣ 📜index.js
┃ ┣ 📜authRoutes.js
┃ ┣ 📜cartRoutes.js
┃ ┣ 📜folderRoutes.js
┃ ┣ 📜itemRoutes.js
┃ ┣ 📜notiRoutes.js
┃ ┣ 📜userRoutes.js
┣ 📂utils
┃ ┣ 📜errors.js
┃ ┣ 📜response.js
┃ ┣ 📜sendMailMessage.js
┃ ┣ 📜strings.js
┣ 📜app.js
┃ 📜.eslintrc.js
┃ 📜.prettierrc.js
┃ 📜pacakge.json
┃ 📜pacakge-lock.json
┃ 📜webpack.config.js
┃ 📜ecosystem.config.js

Meeting Note

hyeeyoung의 10개월 간의 발자취예요! Click ✔


Convention

Git Convention 바로가기 Click ✔

Code Convention 바로가기 Click ✔