| 문영민 | 문효진 | 최태영 |
|---|---|---|
| ㆍ개발/배포 환경 분리 설정 ㆍSwagger 파일 분리 적용 ㆍ구글 로그인 |
ㆍJWT 미들웨어 ㆍ게시글 API ㆍ카카오 로그인 |
ㆍ유저, 미션, 모임 API ㆍ네이버 로그인 |
# 백엔드 소스 다운로드
$ git clone https://github.com/SesacProjectTeamA-2/pj-back.git+ 화면에서 실행하고 싶은 경우, 진행
# 프론트엔드 소스 다운로드
$ git clone https://github.com/SesacProjectTeamA-2/pj-front.git- cors
- cross-env
- express-basic-auth
- jsonwebtoken
- node-cron
| 테이블명 | 관계 및 추가 정보 |
|---|---|
| group - mission | - 모임당 하나의 디데이 및 여러 미션을 설정하고 있어 1대다 관계. - 미션에 대한 디데이가 지났는지 여부에 대한 데이터 저장을 위한 컬럼(isExpired) 설정. |
| groupBoard - groupUser | - 게시물을 작성시 해당 미션(mSeq)은 ‘미션 완료’로 간주하고(‘y’) - 모임참여유저의 점수가 업데이트. - 난이도 정보가 필요하여 mission Table 을 JOIN |
| group - groupUser | - 모임의 총 점수와 모임 참여 유저의 현재점수를 사용하여 달성률 및 랭킹을 추출. - 달성률/랭킹을 위한 table을 모델링하게 된다면, 구조가 복잡해지고 데이터저장을 위한 공간이 필요하므로, 반정규화 채택. |
| groupBoard - mission | - 미션 완료 여부에 대한 컬럼을 groupBoard에 포함. 관계 테이블을 정의하면 한 번의 JOIN을 더 거치게 되어 반정규화 |
- config 폴더 밑에 .env파일을 생성
# .env 파일 생성
$ cd pj-back
$ touch .envJWT를 사용해서 Bearer 토큰값이 필요한 경우, 설정해주는 부분
// config/swagger.js
components: {
securitySchemes: {
bearerAuth: {
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT',
},
},
},Swagger 로그인 설정(아이디, 비밀번호 입력)
app.use(
'/api-docs', // YOUR_URL/api-docs : Swagger 호출
eba({ // const eba = require('express-basic-auth');
// swagger 로그인 설정
challenge: true,
users: { YOUR_SWAGGER_ID: 'YOUR_SWAGGER_PW' }, // ID: PW
}),
swaggerUi.serve,
swaggerUi.setup(specs)
);| 전송 정보 예시 | 결과값 예시 |
|---|---|
![]() |
![]() |
- 구글 로그인
- 카카오 로그인
- 네이버 로그인
# git clone 이후에 실행
$ cd pj-back
# 개발 서버 (localhost:YOUR_PORT)
$ npm start
# 배포 서버 (YOUR_DOMAIN:YOUR_PORT)
$ npm run start:prod├── app.js
├── config
├── controller
├── middlewares
├── models
├── modules
│ ├── swagger
│ │ ├── parameter
│ │ │ ├─ path
│ │ │ ├─ query
│ │ ├── requestBody
│ │ ├── response
└── routes


