- Node.js 14 이상 & npm
- yarn 1.0 이상
- Docker Deskop
- docker-compose
다음 url로 접속을 합니다. Swagger 접속 주소: localhost:3000/api/swagger
Swagger이라는 프로그램을 이용하여 현재 서버에 나와있는 모든 api를 보며 테스트 할 수 있습니다.
Try It Out
버튼을 누르면 굳이 postman 같은 툴을 쓰지 않고 swagger 내에서 바로 테스트가 가능합니다.
Execute
을 누르면 서버로 request가 전송이 되고, 밑에 Responses 영역에 Response code (200, 400 등) 과 detail이 돌아옵니다.
API list
docker은 가상 컨테이너로, 그 위에서 서버(Node.js ) 및 DB (Postgres) 가 돌아가게 됩니다. 컨테이너 내에서 둘은 연결이 되어 있으며 DB포트 5432, 서버는 포트 3000으로 통신을 합니다. 컨테이너 내에서도 이 포트로 통신하며 컨테이너 외부 (우리 머신과 통신할때도) DB와 서버 둘다 외부로도 노출이 되어있어서 둘다 같은 포트를 쓰면 됩니다.
DB 생성 및 테이블 새롭게 생성은 어떻게 되나요? 그건 TypeORM 이라는 ORM이 우리가 entity 를 만들고 파일에 저장 할 때 마다 자동으로 해줍니다.
DB 에 접속할 때 필요한 정보는 모두 .develeopment.env 에 있습니다.
현재 AWS 로 이메일 보내는 기능은 임시로 꺼놨습니다.
- yarn 이 깔려있지 않다면, 다음 명령어를 실행합니다.
# 아무대서나 실행 가능
$ npm install -g yarn
yarn을 깔 때 빼곤 npm
명령어를 사용할 일이 없으니 유의해주세요.
- yarn 및 docker-compose 가 잘 설치 되었나 확인
$ yarn --version
1.22.5 # 이렇게 버전 명이 뜨면 성공 (꼭 이 버전과 일치하지 않아도 무방)
$ docker-compose --version
docker-compose version 1.29.1, build c34c88b2 # # 이렇게 버전 명이 뜨면 성공 (꼭 이 버전과 일치하지 않아도 무방)
- 패키지 의존성 설치 (package.json이 바뀔 때 마다 해주어야 함 )
# 루드에 있다는 가정하에 server로 들어감
$ cd ./server
# server 디렉토리 내에서 실행
$ yarn
이러면 뭐가 여러개 깔리고, 이미 다 깔려있다면 Already up to date
라 뜹니다.
- Docker compose를 통해 컨테이너를 띄우고 정해진 명령어를 미리 실행해 서버와 디비를 띄웁니다. (따라서 우리는 따로 서버와 디비를 킬 필요가 없음)
# 주의 프로젝트 루트 디렉토리에서 실행해야함! (/server 이 아닙니다)
$ cd .. # server 내에 있을 때만 이 명령어를 통해 루트로 나온다. (이미 루트면 실행 할 필요 X)
$ docker-compose -f docker-compose.dev.yml up
- 개발을 마치고 종료할 때 (터미널에서 도커 환경을 끄고 싶을 때)
Ctrl+C 누르면 됨 (Mac & Windows 동일함)
- 실수로 npm을 써
npm-lock.json
파일이 생겼다면 지웁시다. - 디렉토리 어디에서 실행 하는지 확인을 꼭 합시다.
- 회원가입시 이메일 인증을 위해 이메일을 입력할 때 사용.
- [email protected] 입력 시 유효한 status code(200)가 response된다.
- 회원가입시 이메일로 전송된 이메일 인증번호 확인 시 사용한다. (현재 코드는 000000 으로 통일)
- status code
- 인증코드를 정상적으로 입력하였을때의 결과값이다. email string이 유효하며 code string=000000이므로 status code(200)이고 True
- 인증코드를 잘못 입력하였을때의 결과값이다. email string이 유효하며 code string=111111이므로 status code(200)이고 False.
-
회원가입시 사용되는 api
-
role,email,password,fullName,grade,classnumber,studentNumber,phone을 request한다.
- 정상적으로 회원가입이 완료된 경우 status code(200)가 response된다.
-
로그인에 사용되는 api
-
request: email/password를 전송하여 request
-
response: id,role,email,fullName,grade,classnumber,studentNumber,phone response
-
정상적으로 로그인이 완료된 경우 status code(200)가 response된다.
- 로그아웃에 사용되는 api
- 정상적으로 로그아웃이 완료된 경우 status code(201)가 response된다.
- 현재 로그인 되어있는 user의 정보를 불러와 데이터값을 조회하는 경우 사용된다.
- 정상적으로 조회된 경우 status code(200)과 함께 user의 데이터 값이 response된다.
- 회원 탈퇴시 사용된다.
- 정상적으로 회원 탈퇴된 경우 status code(200)가 response된다.
- 학생이 수강신청을 할 때 필요한 리스트를 반환해주는 api이다.
- page,pagesize,order 값을 설정하여 반환되는 데이터의 수와 정렬 방식을 조정해줄 수 있다.
- 정상적으로 데이터가 조회된 경우 status code(200)와 함께 현재 조회가능한 lecture list가 response된다.
-
TEACHER가 본인이 강의할 수업을 개설할 때 사용된다.
-
현재 login되어있는 user의 role='TEACHER'일 경우에만 사용된다
-
lectureName(강의명),grade,lectureCode,lectureTime(수업시간)을 request한다.
- 정상적으로 강의가 개설된 경우 status code(200)가 response된다.
-
학생이 수강할 lecture를 수강신청할 때 사용된다.
-
학생이 수강신청 하고자 하는 lectureId값을 request한다.
-
정상적으로 강의가 개설된 경우 status code(200)가 response된다.
- responese body 부분에서 수강신청을 진행한 student의 데이터가 "users" 리스트에 추가되었음을 확인할 수 있다.
- Teacher/Student가 현재 본인이 강의/수강하고 있는lecture 목록을 조회할 때 사용된다
- 정상적으로 수업이 조회된 경우 status code(200)와 lecture list가 response된다.
-
교수가 학생의 출석체크를 진행할 때 사용된다.
-
CreateAttendanceDto는 userId(학생ID),lectureId(수업ID),nth(수업차시),check(출결현황)으로 이루어져있다.
-
check는 ATTENDED/ABSENT/TARDY/ETC 총 4가지 값 중 1가지로 이루어져야한다.
- 다음은 check에 'ABSENT'를 넣어 request했을때의 결과이다.
- 정상적으로 출석체크가 완료되어 status code(200)와 response된다.
- 다음은 check에 null값을 넣어 request했을때의 결과이다.
- status code(500)와 response된다.