작업들간 우선순위 고려하기
로그인 / 로그아웃(LoginPage)
- 로그인/회원가입 UI
- 로그인 토큰 처리
- 로컬스토리지에 저장
- authorized가 필요한 페이지에서 헤더에 토큰을 담아 요청할 수 있도록 해야 함
- 토큰 만료시 처리 (API확인 후 작업)
- 로그아웃 기능
- 로컬스토리지 삭제
- 메인으로 라우팅
퀴즈(QuizPage)
퀴즈 인터페이스
퀴즈 생성(포스팅)
- 이미지는 null처리
[논의 필요]
퀴즈 set 데이터를 넣을 방식?

퀴즈 여러 개를 만들고 submit 하면 퀴즈 별로 각자 post(quiz) 요청
- POST 요청시 모든 정보를 title에 JSON.stringify 에서 넣어야 됨
퀴즈 출력(리스팅)

랜덤 퀴즈부터 구현 후 default 고민
default 퀴즈 세트
고민중
퀴즈 세트를 어떤 API를 사용하여 저장하면 좋을지 → 추후 문제가 추가되거나 삭제될 경우 업데이트가 되야 함,- 채널에 해당 포스트 저장하면 되지 않나?
Random 퀴즈
- 퀴즈 요청 form (카테고리, 문제 수)
- 퀴즈는 풀이 여부와 관계 없이 완전한 랜덤 형식으로 주어짐(푼 걸 또 틀릴 수 있으므로)
퀴즈 푸는 페이지(ResultPage)
- 정해진 문제 수 만큼 문제를 풀 수 있음
- 답안 수와 문제 수가 동일할 경우만 제출 가능
- 정답과 사용자의 답을 비교하여 점수를 합산 (클라에서 처리)
- submit 버튼을 눌렀을 때 합산한 점수를 제출
- 정답 및 경험치 계산
- 어떤 문제를 풀었는지 postId를 배열에 저장하여 localStorage에 저장 -
ContextAPI로 관리 예정
- 만약에 배열에 정보가 있다면 request 할 필요 X
- 문제들 + 좋아요 버튼이랑 + 코멘트 버튼
- 코멘트 버튼 클릭 시 모달 창이 열림
- 코멘트 작성
- 코멘트 읽기
- 코멘트 삭제 (본인 것만)
퀴즈 리스트 요청시 사용할 API



랭킹(RankPage)
- 왼쪽에 로그인 한 유저의 랭킹 정보
- /users/{userId}
- context api에는 userId에 대한 정보를 저장하고 있어야 함

- 오른쪽에 유저 랭킹 리스트
- UserList 받아와서 sort해야 함(fullName에 저장된 totalPoint 기준)
- 유저 아이템 누르면 유저 info로 이동

InfoPage
/users/{id}
- 파라미터로 받은 id와 context API에 들어있는 userId가 같은지 비교해서 같으면 특정 정보 보여줌
- 작성한 퀴즈, 좋아요 한 퀴즈, 본인의 댓글


알림
- 알림 확인
GET /notifications
- 나의 작성 퀴즈에 댓글 달렸을 때
- 나의 작성 퀴즈 좋아요 눌렸을 때

- 알림 보내기
POST /notifications/create
- 나의 작성 퀴즈에 댓글 달렸을 때
- 나의 작성 퀴즈 좋아요 눌렸을 때
