Skip to content

Latest commit

 

History

History
272 lines (235 loc) · 14.7 KB

README.md

File metadata and controls

272 lines (235 loc) · 14.7 KB

Server


🏠 About Hous- 🧐

우리의 House를 위한 How is - 💡


SOPT 30th APPJAM


🐉 Workflow

hous_workflow


💡 Key Service


✨ 이벤트 등록

함께하는 일 혹은 룸메이트들이 알면 좋을 자신의 일정을 이벤트로 등록해 서로의 생활을 공유할 수 있도록 하며 당일 알림을 통해 잊지 않고 기억하게 해줌.

✨ 규칙 등록

공동 생활에 필요한 규칙을 등록하고 카테고리별 분류를 통해 쉽게 확인하도록 함. 설정한 담당자와 요일에 따라 알림을 받고 규칙을 지켰는지 체크할 수 있음.

✨ 성향 테스트

하루의 상황과 질문을 제시해 응답을 통해 생활 성향을 확인함. 그래프와 성향 카드를 통해 테스트 결과를 한 눈에 볼 수 있도록 하며, 이는 룸메이트간 서로에 대한 이해를 도움.


🛠 Tech Stack


🌲 Git Branch Strategy

gitConvention


🏗 Architecture

hous_architecture


🗂 Folder Structure

📦src
 ┣ 📂config
 ┃ ┣ 📜logger.ts
 ┃ ┗ 📜index.ts
 ┣ 📂controller
 ┃ ┣ 📜AuthController.ts
 ┃ ┣ 📜EventController.ts
 ┃ ┣ 📜RoomController.ts
 ┃ ┣ 📜RuleController.ts
 ┃ ┣ 📜TypeController.ts
 ┃ ┣ 📜UserController.ts
 ┃ ┗ 📜index.ts
 ┣ 📂errors
 ┃ ┣ 📜errorGenerator.ts
 ┃ ┗ 📜generalErrorHandler.ts
 ┣ 📂interface
 ┃ ┣ 📂auth
 ┃ ┣ 📂check
 ┃ ┣ 📂common
 ┃ ┣ 📂event
 ┃ ┣ 📂room
 ┃ ┣ 📂rule
 ┃ ┣ 📂ruleCategory
 ┃ ┣ 📂type
 ┃ ┗ 📂user
 ┣ 📂loaders
 ┃ ┗ 📜db.ts
 ┣ 📂middleware
 ┃ ┣ 📜auth.ts
 ┃ ┗ 📜slackAlarm.ts
 ┣ 📂models
 ┃ ┣ 📜Check.ts
 ┃ ┣ 📜Event.ts
 ┃ ┣ 📜Room.ts
 ┃ ┣ 📜Rule.ts
 ┃ ┣ 📜RuleCategory.ts
 ┃ ┣ 📜Type.ts
 ┃ ┣ 📜TypeTest.ts
 ┃ ┗ 📜User.ts
 ┣ 📂modules
 ┃ ┣ 📜checkIconType.ts
 ┃ ┣ 📜checkObjectIdValidation.ts
 ┃ ┣ 📜checkValidUtils.ts
 ┃ ┣ 📜iconType.ts
 ┃ ┣ 📜jwtHandler.ts
 ┃ ┣ 📜limitNum.ts
 ┃ ┣ 📜responseMessage.ts
 ┃ ┣ 📜statusCode.ts
 ┃ ┗ 📜util.ts
 ┣ 📂routes
 ┃ ┣ 📜AuthRouter.ts
 ┃ ┣ 📜RoomRouter.ts
 ┃ ┣ 📜TypeRouter.ts
 ┃ ┣ 📜UserRouter.ts
 ┃ ┗ 📜index.ts
 ┣ 📂service
 ┃ ┣ 📂auth
 ┃ ┃ ┗ 📜AuthService.ts
 ┃ ┣ 📂event
 ┃ ┃ ┣ 📜EventRetrieveService.ts
 ┃ ┃ ┣ 📜EventService.ts
 ┃ ┃ ┗ 📜EventServiceUtils.ts
 ┃ ┣ 📂room
 ┃ ┃ ┣ 📜RoomRetrieveService.ts
 ┃ ┃ ┣ 📜RoomService.ts
 ┃ ┃ ┗ 📜RoomServiceUtils.ts
 ┃ ┣ 📂rule
 ┃ ┃ ┣ 📜RuleRetrieveService.ts
 ┃ ┃ ┣ 📜RuleService.ts
 ┃ ┃ ┗ 📜RuleServiceUtils.ts
 ┃ ┣ 📂type
 ┃ ┃ ┣ 📜TypeRetrieveService.ts
 ┃ ┃ ┗ 📜TypeServiceUtils.ts
 ┃ ┣ 📂user
 ┃ ┃ ┣ 📜UserRetrieveService.ts
 ┃ ┃ ┣ 📜UserService.ts
 ┃ ┃ ┗ 📜UserServiceUtils.ts
 ┃ ┗ 📜index.ts
 ┣ 📜swagger.ts
 ┣ 📜index.ts
 ┃
 📦test
 ┣ 📜AuthService.spec.ts
 ┣ 📜EventRetrieveService.spec.ts
 ┣ 📜EventService.spec.ts
 ┣ 📜RoomRetrieveService.spec.ts
 ┣ 📜RoomService.spec.ts
 ┣ 📜RuleRetrieveService.spec.ts
 ┣ 📜RuleService.spec.ts
 ┣ 📜TypeRetrieveService.spec.ts
 ┣ 📜UserRetrieveService.spec.ts
 ┣ 📜UserService.spec.ts
 ┗ 📜index.spec.ts

💌 Commit Convention

제목 내용
feat 새로운 기능 추가
fix 자잘한 수정
bugfix 버그 수정
chore config 및 라이브러리, 빌드 관련 파일 수정 (프로덕션 코드 수정 x)
docs 문서 수정
refactor 코드 리팩토링 시에만 사용
test 테스트 코드 작성
rename 파일명, 변수명 수정
comment 주석 추가 및 수정
remove 기능 삭제 및 파일 삭제

👨‍👧‍👦 Team

@hyejungg @yjooooo @orijoon98
kimhj syj khj
서버 개발자 서버 개발자 서버 개발자

📄 API

Router method end point description 담당자
auth POST /auth/signup 회원가입 공혁준
POST /auth/login 로그인 공혁준
room GET /room 들어간 방 id 조회하기 공혁준
POST /room 방 생성하기 공혁준
GET /room/in?roomCode= 방 입장하기 초대코드 입력 시 공혁준
POST /room/:roomId/in 방 입장하기 공혁준
DELETE /room/:roomId/out 방 퇴사하기 공혁준
GET /room/:roomId/home 홈화면 조회하기 김혜정
POST /room/:roomId/event 이벤트 추가하기 김혜정
GET /room/:roomId/event/:eventId 이벤트 조회하기 김혜정
PUT /room/:roomId/event/:eventId 이벤트 수정하기 김혜정
DELETE /room/:roomId/event/:eventId 이벤트 삭제하기 김혜정
GET /room/:roomId/rules 규칙 홈화면 조회하기 (오늘의 to-do) 김혜정
GET /room/:roomId/rules/me 규칙 홈화면 조회하기 (나의 to-do) 공혁준
PUT /room/:roomId/rule/:ruleId/check 오늘 나의 to-do 체크 상태 변경하기 손연주
GET /room/:roomId/rule/:ruleId/today 오늘의 임시 담당자 설정 시 룸메이트 리스트 조회하기 손연주
PUT /room/:roomId/rule/:ruleId/today 오늘의 임시 담당자 설정하기 손연주
POST /room/:roomId/rules/category 규칙 카테고리 추가하기 손연주
PUT /room/:roomId/rules/category/:categoryId 규칙 카테고리 수정하기 손연주
DELETE /room/:roomId/rules/category/:categoryId 규칙 카테고리 삭제하기 (카테고리 삭제 시 안에 규칙들 다 삭제) 손연주
GET /room/:roomId/rule/new 규칙 생성 시 조회 (규칙 카테고리 리스트, 참여자 리스트) 손연주
GET /room/:roomId/category/:categoryId/rule 카테고리 별 규칙리스트 조회 손연주
POST /room/:roomId/rule 규칙 1개 추가하기 공혁준
GET /room/:roomId/rule/:ruleId 규칙 1개 조회하기 공혁준
PUT /room/:roomId/rule/:ruleId 규칙 1개 수정하기 공혁준
DELETE /room/:roomId/rule/:ruleId 규칙 1개 삭제하기 공혁준
user GET /user/profile 프로필 홈화면 조회하기 김혜정
GET /user/profile/me 나의 프로필 수정 시 정보 조회하기 김혜정
PUT /user/profile/me 나의 프로필 수정하기 김혜정
GET /user/me/type 성향 상세 조회하기 - 나 (자세히 보기 버튼) 손연주
DELETE /user 탈퇴하기 김혜정
GET /user/setting 설정 조회하기 손연주
PUT /user/setting/notification 알림 여부 수정하기 손연주
GET /user/:homieId 룸메이트 조회하기 김혜정
GET /user/:userId/type 성향 상세 조회하기 - 룸메이트 (자세히 보기 버튼) 손연주
PUT /user/type/test 성향 테스트 점수 등록 및 수정 김혜정
type GET /type/test 성향 테스트 문제 조회 손연주

📦 Dependency Module

"devDependencies": {
    "@types/bcryptjs": "^2.4.2",
    "@types/express": "^4.17.13",
    "@types/jsonwebtoken": "^8.5.8",
    "@types/mocha": "^9.1.1",
    "@types/mongoose": "^5.11.97",
    "@types/morgan": "^1.9.3",
    "@types/node": "^18.0.3",
    "@types/swagger-ui-express": "^4.1.3",
    "@types/winston": "^2.4.4",
    "eslint": "^8.18.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-airbnb-typescript": "^17.0.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-import": "^2.26.0",
    "eslint-plugin-prettier": "^4.1.0",
    "husky": "^8.0.1",
    "nodemon": "^2.0.15",
    "ts-node": "^10.8.2",
    "typescript": "^4.7.4"
},
"dependencies": {
    "@types/swagger-jsdoc": "^6.0.1",
    "axios": "^0.27.2",
    "bcryptjs": "^2.4.3",
    "chai": "^4.3.6",
    "dayjs": "^1.11.3",
    "dotenv": "^16.0.0",
    "express": "^4.17.3",
    "express-validator": "^6.14.0",
    "jsonwebtoken": "^8.5.1",
    "mocha": "^10.0.0",
    "mongoose": "^6.3.1",
    "morgan": "^1.10.0",
    "supertest": "^6.2.4",
    "swagger-autogen": "^2.21.5",
    "swagger-jsdoc": "^6.2.1",
    "swagger-ui-express": "^4.4.0",
    "winston": "^3.8.1",
    "winston-daily-rotate-file": "^4.7.1"
}