Skip to content

Keyneez/Keyneez-Server

Repository files navigation

Keyneez-Server

image


✨ 서비스 핵심 기능 소개

1. 테스트하고, 나만의 젤리 만들기
본인의 성향과 관심사 정보를 선택하시면, 15가지 캐릭터 중 본인에게 가장 잘 어울리는 캐릭터를 발급해드립니다.
image
2. 나에게 꼭 맞는 추천 게시물 보기
앞서 발급된 캐릭터의 성격에 맞춰 추천 탭에서 보여지는 정보가 달라져, 본인에게 알맞는 정보를 상단에서 확인하실 수 있습니다.
image
3. ID 카드 발급받기
학생증과 청소년증을 스캔하여 본인을 인증하고, 인증된 정보로 키니즈만의 ID 카드를 발급받으실 수 있습니다.
image image

🧾 API 명세서 확인하기

👣 ERD

image

🛠 Tech


🫧 Convention

Code convention
  • 변수나 함수명은 camelCase

  • 함수의 경우 동사 + 명사

    • ex) getInformation()
  • DB 테이블 이름 PascalCase / 칼럼(column) 이름은 snake_case

  • Class / Interface / Type / Namespace / Enum 명은 PascalCase

  • 약어는 되도록 사용하지 않는다. (필요한 경우 팀원과의 논의 하에 사용)

  • 파일명은 camelCase ex) userController.ts, userService.ts, userRouter.ts

Commit message convention
태그 이름 설명
[feat] 새로운 기능 구현
[update] 추가 개발 진행
[merge] 다른 브랜치를 merge 할 때 사용
[fix] 버그, 오류 수정
[remove] 불필요한 코드 삭제
[rename] 파일 이름 변경 시 사용
Git Branch convention
  • main : 개발 브랜치

  • master : 배포 브랜치

  • feat/user → router 별로 분리


📂 Directory Structure

./src
├── index.ts
├── constants
│   ├── index.ts
│   ├── response.ts
│   ├── responseMessage.ts
│   ├── statusCode.ts
│   └── tokenType.ts
├── controller
│   ├── userController.ts
│   ├── userController.test.ts
│   ├── index.ts
│   ├── contentController.test.ts
│   └── contentController.ts
├── data
│   └── character.json
├── interfaces
│   ├── user
│   │   ├── CharacterCreateDTO.ts
│   │   ├── CharacterResDTO.ts
│   │   ├── CheckIdentityDTO.ts
│   │   ├── UserCreateDTO.ts
│   │   └── UserUpdateDTO.ts
│   └── content
│       ├── AllContentsDTO.ts
│       └── ContentDTO.ts
├── middlewares
│   ├── auth.ts
│   └── index.ts
├── modules
│   └── jwtHandler.ts
├── router
│   ├── userRouter.ts
│   ├── index.ts
│   └── contentRouter.ts
└── service
    ├── userService.ts
    ├── index.ts
    └── conentService.ts

🗞 Dependencies Module ( package.json )

{
  "name": "seminar4",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev": "nodemon",
    "build": "tsc && node dist",
    "db:pull": "npx prisma db pull && npx prisma generate",
    "db:push": "npx prisma db push && npx prisma generate",
    "generate": "npx prisma generate",
    "prepare": "husky install",
    "test": "dotenv -e prisma/.env.test npx prisma db push && npx prisma generate && jest --detectOpenHandles --forceExit "
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.2",
    "@types/express": "^4.17.14",
    "@types/express-validator": "^3.0.0",
    "@types/jest": "^29.2.5",
    "@types/jsonwebtoken": "^8.5.9",
    "@types/multer": "^1.4.7",
    "@types/multer-s3": "^3.0.0",
    "@types/node": "^18.11.9",
    "@types/supertest": "^2.0.12",
    "husky": "^8.0.3",
    "jest": "^29.3.1",
    "nodemon": "^2.0.20",
    "supertest": "^6.3.3",
    "ts-jest": "^29.0.3",
    "typescript": "^4.9.4"
  },
  "dependencies": {
    "@aws-sdk/client-s3": "^3.216.0",
    "@prisma/client": "^4.5.0",
    "bcryptjs": "^2.4.3",
    "dotenv": "^16.0.3",
    "dotenv-cli": "^6.0.0",
    "express": "^4.18.2",
    "express-validator": "^6.14.2",
    "jsonwebtoken": "^8.5.1",
    "multer": "^1.4.5-lts.1",
    "multer-s3": "^3.0.1",
    "prisma": "^4.5.0"
  },
  "jest": {
    "transform": {
      "^.+\\.ts$": "ts-jest"
    },
    "testRegex": "\\.test\\.ts$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "json"
    ]
  }
}

Server Architecture

image


역할 분배

박서원 user Router API 구현
김규원 content Router API 구현

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published