1. 회원가입 관련
- 로그인/회원가입 모달
1-1
- 유저 정보 페이지 UI
1-2
(+@ 퀴즈쪽 필요)
- 유저 정보 변경 모달
1-3
2. 퀴즈(Post) 생성
- 퀴즈 생성 페이지
1-1
QuizCreateItem
- data:
Quiz
- Quiz관련 form 기능 (카테고리, 문제유형, 문제Title, 정답, 중요도, 해설, SetId )
QuizCreateItem
추가 기능- 퀴즈 세트(Channel) 생성
- 퀴즈들의 난이도와 중요도 평균값 구해서 넣기
- 현재 토큰 던져서 user 정보 받아 넣기
- 메인 페이지 퀴즈 세트 리스트 UI
1-2
QuizSetList
- data :
Channel[]
{ "_id" : "123123sadasda", // String "name" : "퀴즈세트타이틀명", //String "descripiton(커스텀화)" : { "tag" : "태그[]", // String[] "des" : "퀴즈세트 설명 내용", // String "creator" : User, "difficulty": 4, // Number "importance" : 3, // Number }, "posts" : Post[], ... }
예시

- 메인 페이지 퀴즈 세트 필터링 & 정렬
1-3
- Selector 컴포넌트
FilterSelector
- 태그별 필터링 기능 (client에서 처리)
- 난이도 / 중요도 필터링
SortSelector
- 좋아요/최신순 정렬 기능 (client에서 처리)
- 난이도 / 중요도 순 정렬
selector에 어떻게 넣을지는 고민해보기
와이어프레임


(세트화 하지 않은 퀴즈는 랜덤에서만 등장하고, 채널 1개에 넣어만 둔다)
3. 퀴즈(Post) 풀이
메인화면에서 카테고리 ⇒ 풀이 페이지 이동하는 과정
[흐름 시나리오]
- 메인 화면에서 세트/낱개 퀴즈를 클릭한다
- 바로 문제 풀이 페이지로 넘어가게 된다.
랜덤 퀴즈 시작 부분
데이터
- 퀴즈 카테고리(React, html, …)
- 질문 갯수(최대 10개)
기능
문제 풀기 버튼 클릭 시 랜덤 퀴즈를 불러온다
이슈
- 랜덤 퀴즈 시 모든 퀴즈 불러오기에 대한 이슈
- GET /channels ⇒ Channel[]
채택
- Channel[] 배열 내 각 Channel의 post배열의 post id를 map ⇒ 랜덤
- 얻은 id만큼 GET
⇒ 랜덤 최대 문제 수 제한(10개)
- GET /posts/channels/{channelId} ⇒ 랜덤
- 수정 시 2번 요청 - [ 세트 없는 채널, 세트 있는 채널 ]
풀이 페이지 세부 사항
와이어프레임


Post
[퀴즈 풀이 페이지]
1. 랜덤 퀴즈 GET /channels ⇒ Channel[] `채택` Channel[] 배열 내 각 Channel의 post배열의 post id를 map ⇒ 랜덤 얻은 id만큼 GET /posts/channels/{channelId} ⇒ 랜덤 최대 문제 수 제한(10개) 2. 세트 퀴즈 GET /posts/channels/{channelId} { "_id" : "asdfdi", // String "title(커스텀화)" : { "question" : "문제", // String //"importance" : 3, // Number ... }, ... }
포스트맨 예시
- GET /channels

- GET /posts/channels/{channelId}

- 퀴즈 풀이 페이지 (By dummy-quiz)
- 현재 문제 번호
- 전체 문제 수
- 좋아요 여부(t/f)
- 사용자 입력한 답 데이터 []
- 문제의 답 데이터 []
- 문제 별 포인트 []
- 중요도와 난이도에 따른 다른 점수가 부여된다.
- 현재 문제 / 전체 문제 출력 (개수)
- 이전 페이지/이후 페이지로 넘기기 ( 화살표 버튼)
- [adv?] 페이지 넘길 시 부드럽게 넘겨지는 애니메이션
- O, X 버튼 클릭 해서 현재 답변 데이터 변경
- 현재 답변 세션 스토리지 저장 기능 ( 새로고침 관련 issue)
- 마지막 페이지 ( 총 문제 수 === 현재 문제 번호) 면 제출하기 버튼 활성화
- 제출하기 버튼 클릭 시 퀴즈 결과 페이지로 이동
- [adv] 실시간 채점?
- 도입 시 답 수정 못하도록 막아야 함
- 시간초 기능
- 체력 바 추가
- 실시간 채점 & 틀릴 시 체력 감소
- 체력 0 일 시 즉시 종료
- 캐릭터 아이템에 따른 부가 효과 존재
[데이터]
Quiz (Post[])
[기능]
[adv기능]
퀴즈 결과
- 내 정보 확인 카드
- 로그인 O
- 이미지
- 닉네임
- 랭크
- 현재 경험치
- 획득 경험치 : 애니메이션
- 태그
- 로그인 X
- 디폴트 이미지
- 디폴트 닉네임
- 가입 유도 버튼 + 로그인
- 세트 정보
- 정답 확인 퀴즈 카드
- 정답 여부
- 문제
- 댓글 : 토글
- 좋아요
- 토글 카드
- 정답
- 해설
- 댓글 입력 카드
- 댓글 카드
- 다른 페이지 링크 버튼
- 메인
- 랭킹
- 퀴즈 생성

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



비상용








