TeamNado-Sunbae / NadoSunbae-Server

💚🐛 ᗩᑎ ᗴᗩᖇᒪƳ ᔕᑌᑎᗷᗩᗴ ᑕᗩ丅ᑕᕼ 丅ᕼᗴ ᗪᗝᗝᗷᑌᗰ 🐛💚
14 stars 0 forks source link
aws express firebase javascript nodejs postgresql

나도선배 NadoSunbae - Server

![nadosunbae](https://user-images.githubusercontent.com/58043306/150548239-bddd3d54-a790-4cab-bc89-6f52cffa2c2b.png)

제2전공생을 위한 학과 후기, 전공 정보 공유 플랫폼 "나도선배"

아는 선배 없어도 괜찮아. 우리 같이 서로의 선배가 되어주자!
나도선배는 후기와 과방 탭을 통해 인적 네트워크를 제공합니다.

SOPT 29th APPJAM
프로젝트 기간: 2021.12.18 ~
릴리즈: 2022.03

🌲 Menu Tree

menuTree

📋 IA

nadosunbaeIA수정본

📚 API 명세서

명세서 보기

📌 Branch Strategy

Git Workflow
``` 1. local - feature에서 각자 기능 작업 2. 작업 완료 후 remote - develop에 PR 3. 코드 리뷰 후 Confirm 받고 Merge 4. remote - develop 에 Merge 될 때 마다 모든 팀원 remote - develop pull 받아 최신 상태 유지 ```
Branch Name 설명
main 초기 세팅 존재
develop 모든 기능 merge 브랜치
juhyeon 주현 로컬 브랜치
eunji 은지 로컬 브랜치
seol 지원 로컬 브랜치
localdevelop_feature/#issue 각자 기능 추가 브랜치


📌 Conventions

Commit Convention
* **[태그] 내용** 의 형태로 작성
ex) [FEAT] implement postGET | 태그 이름| 설명 | | :--: | :-----: | | CHORE | 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X) | | FEAT | 새로운 기능을 추가하는 경우 | | !HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 | | FIX | 버그, 오류 해결 | | STYLE | 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 | | DELETE | 쓸모없는 코드 삭제 | | DOCS | README나 WIKI 등의 문서 개정 | | MOVE | 프로젝트 내 파일이나 코드의 이동 | | RENAME | 파일 이름 변경 | | REFACTOR | 프로덕션 코드 리팩토링 | | COMMENT | 필요한 주석 추가 및 변경 | | TEST | 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)
Issue, PR Convention
* 변수나 폴더명은 영어로 쓰되, 설명은 한글로 작성 * Issue * [영어 대문자] 내용 * PR * [영어 대문자] #이슈 번호 - 해당 이슈 내용
* 이슈와 내용이 동일할 필요는 없음
* 이슈 번호는 동일 해야 함
Coding Convention
* 변수명 * Camel Case 사용 * 함수의 경우 동사+명사 사용 ex) getInformation() * 길이는 20자로 제한 * flag로 사용 되는 변수는 조동사 + flag 종류로 구성 * 약어는 되도록 사용하지 않는다.
* 주석 * 한줄 주석은 // 를 사용한다. * 그 이상은 /** */ 를 사용한다. * 함수 설명 주석은 2번을 사용한다.
* Bracket ``` javascript // 한줄 if 문 - 여러 줄로 작성 if(trigger) { return; } ``` ``` javascript // 괄호 사용 한칸 띄우고 사용한다. if (left == true) { return; } ``` ``` javascript // 띄어쓰기 if (a == 5) { // 양쪽 사이로 띄어쓰기 return; } ```
* 비동기 함수의 사용 * async, await 함수 사용을 지향한다. * Promise 사용은 지양한다.


🗂 Foldering

펼쳐보기
```markdown |-📋 firebaserc |-📋 firebase.json |-📋 .gitignore |-📁 functions_ |- 📋 index.js |- 📋 package.json |- 📋 .gitignore |- 📋 .env |- 📁 api_ | |- 📋 index.js | |- 📁 routes_ | |- 📋 index.js | |- 📁 config_ | |- 📋 dbConfig.js | |- 📋 firebaseClient.js | |- 📁 constants_ | |- 📋 appVersion.js | |- 📋 jwt.js | |- 📋 notificationType.js | |- 📋 postType.js | |- 📋 reportPeriodType.js | |- 📋 reportType.js | |- 📋 responseMessage.js | |- 📋 reviewPostContent.js | |- 📋 statusCode.js | |- 📁 db_ | |- 📋 db.js | |- 📋 index.js | |- 📋 block.js | |- 📋 classroomPost.js | |- 📋 comment.js | |- 📋 image.js | |- 📋 like.js | |- 📋 major.js | |- 📋 notification.js | |- 📋 relationReviewPostTag.js | |- 📋 report.js | |- 📋 reviewPost.js | |- 📋 tag.js | |- 📋 university.js | |- 📋 user.js | |- 📁 lib_ | |- 📋 convertSnakeToCamel.js | |- 📋 dateHandlers.js | |- 📋 jwtHandlers.js | |- 📋 pushAlarmHandlers.js | |- 📋 util.js | |- 📁 middlewares_ |- 📋 auth.js |- 📋 slackAPI.js ```


⚙️ Dependencies Module

펼쳐보기
``` { "name": "functions", "description": "Cloud Functions for Firebase", "scripts": { "lint": "eslint .", "serve": "cross-env NODE_ENV=development firebase emulators:start --only functions", "shell": "firebase functions:shell", "start": "npm run shell", "deploy": "cross-env NODE_ENV=production firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "16" }, "main": "index.js", "dependencies": { "axios": "^0.25.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "dayjs": "^1.10.7", "dotenv": "^10.0.0", "eslint-config-prettier": "^8.3.0", "express": "^4.17.2", "firebase": "^9.6.2", "firebase-admin": "^9.8.0", "firebase-functions": "^3.18.1", "floor": "^0.0.0", "helmet": "^5.0.1", "hpp": "^0.2.3", "jsonwebtoken": "^8.5.1", "lodash": "^4.17.21", "math-random": "^2.0.1", "pg": "^8.7.1" }, "devDependencies": { "eslint": "^7.6.0", "eslint-config-google": "^0.14.0", "firebase-functions-test": "^0.2.0" }, "private": true } ```


🧩 Role

Name Role
juhyeon DB 설계, API 명세서 작성, API 구현, README 작성
eunji DB 설계, API 명세서 작성, API 구현, 자동 테스트 환경 구축
seol DB 설계, API 명세서 작성, 초기 세팅, API 구현


👩🏻‍💻 Developers

변주현 김은지 설지원
wngus4296 eunji8784 seoljiwon