Skip to content

Team-O2/Back-end

Repository files navigation

Open Together, O2  아이콘

badge lang react realease

배너

함께 성장하는 공간, CEO들이 마시는 산소 O2




O2

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



Team Core Value 👬👭

핵심가치

  • Share
    • 자신의 창업 스토리와 오늘의 회고를 다른 사람들과 공유함으로써 "CEO"에 대한 인사이트 넓히기
  • Growth
    • 공유받은 인사이트와 내 스스로 돌아본 내 모습을 통해 더 나은 CEO로 성장하기
  • Success
    • 모두와 함께 성공적인 창업가의 길로 나아가기



Workflow

workflow



Server Architecture

아키텍쳐

📦Back-end
┣ 📂src
┃ ┣ 📂config
┃ ┃ ┗ 📜index.ts
┃ ┣ 📂library
┃ ┃ ┣ 📜array.ts
┃ ┃ ┣ 📜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": {
    "@types/lodash": "^4.14.171",
    "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",
    "lodash": "^4.17.21",
    "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"
  },
  • aws-sdk : 비차단 I/O 지원, 향상된 시작 성능 및 페이지 매김 응답을 통한 자동 반복과 같이 자주 요청된 다수의 기능

  • bcryptjs : 패스워드 암호화 및 인증

  • cors : Cross-Origin Resource Sharing

  • dotenv : 환경변수 설정

  • express : 웹,서버 개발 프레임워크

  • express-validator : 유효성 검사

  • jsonwebtoken : JWT(Json Web Token) 생성 및 인증

  • lodash : 오브젝트 컨트롤

  • multer : 파일 업로드 도구

  • multer-s3 : AWS S3 파일 업로드 도구

  • nodemon : node.js 서버 개발시에 소스코드에 수정이 있을 경우, 자동으로 서버를 다시 시작해주는 툴

  • nodemailer : e-mail을 쉽게 보낼 수 있게 도와주는 모듈

  • moment : 날짜와 시간을 다루는 모듈

  • mongoose : MongoDB 라이브러리

  • mongoose-validator : MongoDB 컨트롤



사용된 도구

  • Node.js

  • Express.js

  • Visual Studio Code - Node.js editor

  • NPM - 자바 스크립트 패키지 관리자

  • YARN - 자바 스크립트 패키지 관리자

  • MongoDB

  • MongoDBCompass



배포

  • AWS EC2 - 클라우드 컴퓨팅 시스템

  • AWS S3 - 클라우드 데이터 저장소

  • AWS Load Balancer - 트래픽 분산 시스템



Team

🙋 고성용 🙋 이현진
FVCproductions FVCproductions
서버 개발자 서버 개발자
프로젝트 세팅
Auth API
User API
Concert API
Admin API
Notice API
프로젝트 세팅
Auth API
User API
Challenge API
Scheduler
서버 배포