Skip to content

[THE SOPT-APP JAM] 뚝딱뚝딱 행보칸 Hous- 🏡

Notifications You must be signed in to change notification settings

TeamHous/Hous-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d42dce5 · Aug 20, 2022
Jul 19, 2022
Jul 21, 2022
Jul 19, 2022
Jul 22, 2022
Jul 21, 2022
Jul 7, 2022
Jul 3, 2022
Jul 7, 2022
Aug 20, 2022
Jul 17, 2022
Jul 19, 2022
Jul 17, 2022
Jul 21, 2022
Jul 19, 2022
Jul 17, 2022

Repository files navigation

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"
}

About

[THE SOPT-APP JAM] 뚝딱뚝딱 행보칸 Hous- 🏡

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages