Skip to content

Team-Smeme/Smeme-server

Repository files navigation

SMEME-Server

image

🛠 Used Stacks

Typescript NodeJS Express PRISMA AWS


👥 팀별 역할 분담

🌏 김소현 🌏 최윤한
서버 개발자 서버 개발자
프로젝트 세팅
서버 배포
DB 설계
Diary, Category, Scrap API 작성
Test Code 작성
프로젝트 세팅
서버 배포
DB 설계
User, Auth, Diary API 작성
Test Code 작성

📏 Code Convention

  • Airbnb의 자바스크립트 style guide를 따른다. Airbnb Github

  • husky를 이용하여, commit시에 formatting


🌴 Commit Convention

  • Header를 이용하여 최대한 변경사항을 설명하고, 필요시에 body에 변경사항에 대한 상세 내용을 적는다.
태그 이름 설명
[CHORE] 코드 수정, 내부 파일 수정
[FEAT] 새로운 기능 구현
[ADD] FEAT 이외의 부수적인 코드 추가, 라이브러리 추가, 새로운 파일 생성
[HOTFIX] issue나 QA에서 급한 버그 수정에 사용
[FIX] 버그, 오류 해결
[DEL] 쓸모 없는 코드 삭제
[DOCS] README나 WIKI 등의 문서 개정
[CORRECT] 주로 문법의 오류나 타입의 변경, 이름 변경에 사용
[MOVE] 프로젝트 내 파일이나 코드의 이동
[RENAME] 파일 이름 변경이 있을 때 사용
[IMPROVE] 향상이 있을 때 사용
[REFACTOR] 전면 수정이 있을 때 사용

✨ Branch Strategy

📌 브랜치 단위

  • 브랜치 단위 = 이슈 단위 = PR단위
  • 작업이 완료된 브랜치는 develop 브랜치로 merge 한다.
  • 서버 배포는 develop에서 main으로 merge후 main에서 진행한다.

📌 브랜치명

  • 브랜치는 뷰 단위로 생성합니다.
  • 브랜치 규칙 → name_#이슈번호
  • ex) unan_#1, sohyeon_#2

📃 API 명세서 초안

API 명세서 Notion

API 로직 구현 진척도 : 100%


🥫 ERD


🗂 프로젝트 폴더 구조

3-Layer Architecture 기반

📁 src
|_ 📁 config
|_ 📁 controllers
|_ 📁 interfaces
|_ 📁 modules
|_ 📁 routes
|_ 📁 services
|_ 📁 test
|_ index.ts


🌴 Dependencies Module

package.ts

{
  "name": "seminar4",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev": "nodemon",
    "build": "tsc",
    "postinstall": "prisma generate",
    "lint": "./node_modules/.bin/eslint .",
    "lint-staged": "lint-staged",
    "start:dev": "node dist/index.js",
    "prepare": "husky install",
    "test": "yarn mocha test/* -r ts-node/register --timeout 10000 -exit"
  },
  "devDependencies": {
    "@types/chai": "^4.3.4",
    "@types/express": "^4.17.14",
    "@types/jsonwebtoken": "^9.0.0",
    "@types/mocha": "^10.0.1",
    "@types/node": "^18.11.9",
    "@types/supertest": "^2.0.12",
    "@typescript-eslint/eslint-plugin": "^5.47.1",
    "@typescript-eslint/parser": "^5.47.1",
    "chai": "^4.3.7",
    "eslint": "^8.30.0",
    "mocha": "^10.2.0",
    "nodemon": "^2.0.20",
    "supertest": "^6.3.3",
    "ts-node": "^10.9.1"
  },
  "dependencies": {
    "@prisma/client": "^4.8.1",
    "axios": "^1.2.2",
    "dayjs": "^1.11.7",
    "dotenv": "^16.0.3",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-prettier": "^4.2.1",
    "express": "^4.18.2",
    "express-validator": "^6.14.2",
    "husky": "^8.0.2",
    "jsonwebtoken": "^9.0.0",
    "lint-staged": "^13.1.0",
    "prettier": "^2.8.1",
    "prisma": "^4.8.1",
    "typescript": "^4.9.4"
  },
  "lint-staged": {
    "*.ts": [
      "eslint --fix"
    ]
  }
}


🏗 Server Architecture

image

About

메리크리스마스밈 🎄🎄🎄 서버🙏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published