서비스 제목


Open Together, O2

프로젝트 설명


예비 창업가가 회고와 강연을 통해 더 성장할 수 있는 기회를 제공하는 커뮤니티 플랫폼. 오투의 메인 기능으로는 회고를 원하는 기간에 맞춰서 쓰는 Learn Myself와 본인이 직접 연사가 되어볼 수 있고 다른 사람들의 성장 및 창업 스토리를 들어볼 수 있는 Share Together가 있습니다.

서버 아키텍쳐


📦Back-end ┣ 📂src ┃ ┣ 📂config ┃ ┃ ┗ 📜index.ts ┃ ┣ 📂library ┃ ┃ ┣ 📜returnCode.ts ┃ ┃ ┣ 📜response.ts ┃ ┃ ┣ 📜emailSender.ts ┃ ┃ ┣ 📜date.ts ┃ ┃ ┣ 📜jwt.ts ┃ ┃ ┗ 📜emailTemplete.ejs ┃ ┣ 📂Loader ┃ ┃ ┗ 📜db.ts ┃ ┣ 📂interfaces ┃ ┃ ┣ 📜IComment.ts ┃ ┃ ┣ 📜ILikes.ts ┃ ┃ ┣ 📜IScraps.ts ┃ ┃ ┣ 📜IAdmin.ts ┃ ┃ ┣ 📜IUser.ts ┃ ┃ ┣ 📜IBadge.ts ┃ ┃ ┣ 📜IChallenge.ts ┃ ┃ ┗ 📜IConcert.ts ┃ ┣ 📂middleware ┃ ┃ ┗ 📜auth.ts ┃ ┣ 📂models ┃ ┃ ┣ 📜Admin.ts ┃ ┃ ┣ 📜Concert.ts ┃ ┃ ┣ 📜Badge.ts ┃ ┃ ┣ 📜Challenge.ts ┃ ┃ ┣ 📜User.ts ┃ ┃ ┗ 📜Comment.ts ┃ ┣ 📂service ┃ ┃ ┣ 📜schedulerService.ts ┃ ┃ ┣ 📜adminService.ts ┃ ┃ ┣ 📜authService.ts ┃ ┃ ┣ 📜challengeService.ts ┃ ┃ ┣ 📜concertService.ts ┃ ┃ ┣ 📜noticeService.ts ┃ ┃ ┗ 📜userService.ts ┃ ┣ 📂controller ┃ ┃ ┣ 📜admin.ts ┃ ┃ ┣ 📜auth.ts ┃ ┃ ┣ 📜challenge.ts ┃ ┃ ┣ 📜concert.ts ┃ ┃ ┣ 📜notice.ts ┃ ┃ ┗ 📜user.ts ┃ ┣ 📂modules ┃ ┃ ┗ 📜upload.ts ┃ ┣ 📂DTO ┃ ┃ ┣ 📜authDTO.ts ┃ ┃ ┣ 📜challengeDTO.ts ┃ ┃ ┣ 📜commentDTO.ts ┃ ┃ ┣ 📜concertDTO.ts ┃ ┃ ┣ 📜noticeDTO.ts ┃ ┃ ┣ 📜userDTO.ts ┃ ┃ ┗ 📜adminDTO.ts ┃ ┗ 📜index.ts ┣ 📜eslintrc.json ┣ 📜prettierrc.json ┣ 📜tsconfig.json ┣ 📜tsconfig.paths.json ┣ 📜README.md ┣ 📜.gitignore ┣ 📜nodemon.json ┗ 📜package.json

dependencies module


"devDependencies": {
    "@types/bcryptjs": "^2.4.2",
    "@types/cors": "^2.8.12",
    "@types/ejs": "^3.0.7",
    "@types/express": "^4.17.12",
    "@types/mongoose": "^5.11.97",
    "@types/node": "^15.12.5",
    "@types/node-schedule": "^1.3.2",
    "@types/nodemailer": "^6.4.2",
    "@typescript-eslint/eslint-plugin": "^4.28.1",
    "@typescript-eslint/parser": "^4.28.1",
    "eslint": "^7.29.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.23.4",
    "eslint-plugin-prettier": "^3.4.0",
    "nodemon": "^2.0.7",
    "prettier": "^2.3.2",
    "prettier-eslint": "^12.0.0",
    "ts-node": "^10.0.0",
    "tsconfig-paths": "^3.9.0",
    "typescript": "^4.3.5"
  },
  "dependencies": {
    "aws-sdk": "^2.939.0",
    "bcryptjs": "^2.4.3",
    "cors": "^2.8.5",
    "dotenv": "^10.0.0",
    "ejs": "^3.1.6",
    "express": "^4.17.1",
    "express-validator": "^6.12.0",
    "jsonwebtoken": "^8.5.1",
    "moment": "^2.29.1",
    "mongoose": "^5.13.0",
    "mongoose-validator": "^2.1.0",
    "multer": "^1.4.2",
    "multer-s3": "^2.9.0",
    "node-schedule": "^2.0.0",
    "nodemailer": "^6.6.2",
    "request": "^2.88.2"
  },

Code Convention

명명법


  1. low camel case를 사용한다.
  2. 함수명 → 동사+명사 순서로 작성한다.
  3. 변수명 → 명사들의 결합으로 작성한다.