HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
프로그래머스 프론트엔드 데브코스 2기
프로그래머스 프론트엔드 데브코스 2기
/
📓
기동팀
/
💪
기동팀(CheQuiz)
/
📝
feature 산출 [1차 끝]
📝

feature 산출 [1차 끝]

Date
Jun 7, 2022
Tags
기능
💡
작업들간 우선순위 고려하기

로그인 / 로그아웃(LoginPage)

  • 로그인/회원가입 UI
  • 로그인 토큰 처리
    • 로컬스토리지에 저장
    • authorized가 필요한 페이지에서 헤더에 토큰을 담아 요청할 수 있도록 해야 함
    • 토큰 만료시 처리 (API확인 후 작업)
  • 로그아웃 기능
    • 로컬스토리지 삭제
    • 메인으로 라우팅
 

퀴즈(QuizPage)

퀴즈 인터페이스

interface quizType { id: string; title: { question: string; point: number; // 경험치 answer: string; set: 'string'; //set ID나 name } }

퀴즈 생성(포스팅)

  • 이미지는 null처리
  • [논의 필요] 퀴즈 set 데이터를 넣을 방식?
notion image
퀴즈 여러 개를 만들고 submit 하면 퀴즈 별로 각자 post(quiz) 요청
  • POST 요청시 모든 정보를 title에 JSON.stringify 에서 넣어야 됨

퀴즈 출력(리스팅)

notion image
💡
랜덤 퀴즈부터 구현 후 default 고민

default 퀴즈 세트

  • 고민중 퀴즈 세트를 어떤 API를 사용하여 저장하면 좋을지 → 추후 문제가 추가되거나 삭제될 경우 업데이트가 되야 함,
    • 채널에 해당 포스트 저장하면 되지 않나?

Random 퀴즈

  • 퀴즈 요청 form (카테고리, 문제 수)
  • 퀴즈는 풀이 여부와 관계 없이 완전한 랜덤 형식으로 주어짐(푼 걸 또 틀릴 수 있으므로)

퀴즈 푸는 페이지(ResultPage)

  • 정해진 문제 수 만큼 문제를 풀 수 있음
    • 답안 수와 문제 수가 동일할 경우만 제출 가능
    • 정답과 사용자의 답을 비교하여 점수를 합산 (클라에서 처리)
    • submit 버튼을 눌렀을 때 합산한 점수를 제출
  • 정답 및 경험치 계산
  • 어떤 문제를 풀었는지 postId를 배열에 저장하여 localStorage에 저장 - ContextAPI로 관리 예정
    • 만약에 배열에 정보가 있다면 request 할 필요 X
// fullName에서 처리 예정 interface UserInfo { totalPoint: number; //level은 point기준으로 산정 }
  • 문제들 + 좋아요 버튼이랑 + 코멘트 버튼
    • 코멘트 버튼 클릭 시 모달 창이 열림
      • 코멘트 작성
      • 코멘트 읽기
      • 코멘트 삭제 (본인 것만)

퀴즈 리스트 요청시 사용할 API

notion image
notion image

notion image
interface LikeAPI { "_id": String, "user": String, // 사용자 id "post": String, // 포스트 id "createdAt": String, "updatedAt": String }

랭킹(RankPage)


  • 왼쪽에 로그인 한 유저의 랭킹 정보
    • /users/{userId}
    • context api에는 userId에 대한 정보를 저장하고 있어야 함
notion image
  • 오른쪽에 유저 랭킹 리스트
    • UserList 받아와서 sort해야 함(fullName에 저장된 totalPoint 기준)
    • 유저 아이템 누르면 유저 info로 이동
notion image

InfoPage


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

알림


  • 알림 확인
    • GET /notifications
      • 나의 작성 퀴즈에 댓글 달렸을 때
      • 나의 작성 퀴즈 좋아요 눌렸을 때
      notion image
  • 알림 보내기
    • POST /notifications/create
      • 나의 작성 퀴즈에 댓글 달렸을 때
      • 나의 작성 퀴즈 좋아요 눌렸을 때
      notion image