Skip to content

FinalProject-231004/Backend

Repository files navigation

QuizPop


QuizPop


🎉 안녕하세요. 즐거움이 터지는 Quizpop입니다 🎉

퀴즈팝은 "노는게 이득일 수는 없을까?" 라는 의문에서 시작하여 킬링타임에 마일리지 제도를 도입한 퀴즈풀이 기반의 서비스를 제공하고 있습니다.


💙 프로젝트 개요 및 목표 :

  • 주제: 퀴즈 플랫폼 웹사이트
  • 프로젝트 명: 퀴즈팝(Quizpop)
  • 간단 설명:
    ① "퀴즈팝(Quizpop)"은 누구나 참여 가능한 플랫폼으로 사용자는 등록된 퀴즈를 풀거나 원하는 퀴즈를 직접 생성할 수 있으며, 시간대별 라이브 퀴즈에도 참여할 수 있습니다.
    ② 메인화면에서는 퀴즈의 조회수와 좋아요 수를 통해 인기 있는 퀴즈를 확인할 수 있습니다.
  • ③ 카테고리 목록에서 본인이 원하는 분야만 볼 수 있습니다.
  • ④ 자신이 푼 퀴즈는 링크공유/카카오톡 공유를 통해 다른사람에게 공유할 수 있습니다.
  • ⑤ 라이브퀴즈는 라이브 화면과 채팅창으로 구성되며, 추첨을 통해 정답을 맞춘 유저에게 마일리지를 제공합니다.
    ⑥ 사이트에서 모은 마일리지는 마일리지샵에서 기프티콘으로 교환할 수 있습니다.
  • ⑦ 마일리지 정책은 아래와 같습니다.
    • 퀴즈 생성 : +50M (1일 1회)
    • 퀴즈 풀이 : +10M (1일 10회)
    • 출석 체크 : +100M (1일 1회)
    • 라이브퀴즈 당첨 : 문제에 따라 변동(횟수제한 없음)

🎯 핵심 기능


📌 1. 퀴즈 풀기

  • 퀴즈를 풀면 한 문제당 +10M의 마일리지를 얻을 수 있습니다.
  • 비회원도 문제 풀이가 가능합니다!

📌 2. 퀴즈 만들기

  • 배너에 ‘문제 만들기’ 혹은 아래의 연필 모양을 누르면 문제를 직접 출제할 수 있습니다.
  • 퀴즈를 만들면 하루에 1번 50M를 얻을 수 있습니다.

📌 3. 퀴즈 공유하기

  • 다른 유저가 만든 퀴즈를 풀이하고, 지인들에게 공유할 수 있습니다.

📌 4. 최신순, 인기순, 조회순 정렬

  • 좋아요나 조회수에 따라 메인페이지에 만든 퀴즈가 소개될 수 있습니다.
  • 좋아요 혹은 조회수가 동일할 경우 먼저 생성된 퀴즈순서로 배치됩니다.


📌 5. 출석체크

  • 프로필을 클릭하여 출석 체크를 진행할 수 있습니다.
  • 보상으로 100M을 적립해 드립니다.

📌 6. 마일리지샵

  • 사이트를 이용하면서 얻은 마일리지는 다양한 상품으로 교환할 수 있습니다.
  • 구매시 구매할 항목, 수량, 수령가능한 이메일을 기입합니다.
  • 단, 기입한 이메일로 기프티콘 형식으로 보내기 때문에 받을 이메일을 정확하게 기입하여야 합니다. (구매 후 이메일 수정 불가)

📌 7. 알림기능

  • 퀴즈에서 댓글작성 및 좋아요 실행시 퀴즈작성자에게 알림이 보내집니다.
  • 읽음처리, 알림 삭제가 가능합니다.

📌 8. 라이브퀴즈

  • 관리자가 그림을 그리면 해당페이지에서 참여유저들이 볼 수 있고, 채팅을 통해 정답을 맞추는 서비스입니다.
  • 정답을 맞출 경우 상품으로 마일리지를 획득할 수 있습니다.
  • 라이브 퀴즈는 정해진 시간에만 열립니다.
  • 관리자와 실시간으로 소통할 수 있습니다.

📌 9. 악성유저 신고

  • 불쾌한 퀴즈나 댓글에 대하여 신고해 악성유저를 차단 가능합니다.
  • 한명의 유저가 1개의 콘텐츠(댓글 or 퀴즈)를 신고 할 수 있습니다(중복신고 불가)
  • 1개의 콘텐츠을 신고한 유저가 3명이 된다면 해당 콘텐츠는 삭제됩니다.
  • 삭제된 콘텐츠의 수가 3개 이상인 유저는 사이트에서 차단됩니다.



🔗 개발 GitHub 링크



🍿 [BE] Project Members

👑 지유진 🍕 김민경 👑 노지현 🍰 백상용 🥯 양승민 🍔 진민지
🌱 React 🌱 React 🌱 Spring 🌱 Spring 🌱 Spring 🌱 Spring


역할 이름 분담
FE ✨​ 지유진(VL) ‣ 메인 페이지
    - 신규 / 인기 / 조회순 퀴즈 조회
    - 카테고리 별 퀴즈 조회
‣ 퀴즈 관련
    - 퀴즈 제작
        - 퀴즈 상세 정보 페이지
        - 퀴즈 문항 제작 페이지
    - 퀴즈 풀이
    - 퀴즈 상세 조회
        - 댓글 / 좋아요
    - 퀴즈 결과
        - 링크 복사 / 카카오 공유기능
    - 라이브 퀴즈
        - 그림판 기능
        - 웹소켓 기반 실시간 채팅
FE 김민경 ‣ 헤더
    - 로그인 (JWT: Access/Refresh)
    - 카카오 소셜로그인 / 회원가입
    - Sse 기반 실시간 알림
        -전체 읽음 및 삭제
    - 검색
    - 출석체크
‣ 마이페이지
    - 프로필, 닉네임, 비밀번호 변경
    - 회원 탈퇴
    - 마일리지 내역 조회
‣ 마일리지샵
    - 상품 조회 및 구매
BE✨​ 노지현(L) ‣ spring Security 적용
‣ 유저관련
    - 회원가입 기능
    - 로그인 기능 (JWT: Access/Refresh)
    - OAuth 2.0 카카오 소셜로그인
    - 유저 신고 및 권한차단
    - 유저 테스트코드 작성
‣ Redis
‣ 마이페이지
    - 유저정보 변경(프로필, 닉네임, 비밀번호)
    - 회원탈퇴
BE 백상용 ‣ Server-Sent Events
    - 실시간 알림 기능
    - 댓글, 좋아요 알림 기능
    - 알림 전체 읽음 및 삭제 기능
BE 양승민 ‣ 전반적 퀴즈 서비스
    - 퀴즈 CRUD
    - 퀴즈 풀이 응답 저장
    - 퀴즈 풀이 결과 보기
    - 퀴즈 비회원 기능
    - 퀴즈 생성 시 마일리지 획득
    - 퀴즈 풀이 시 마일리시 획득
BE 진민지 ‣ 라이브퀴즈 웹소켓기반 기능 구현
‣ 마일리지샵 CRUD
‣ CICD 무중단 배포
    - 테스트서버(CloudType)
    - 메인서버 무중단 배포(AWS EC2, Nginx, Docker 외)
‣ log 관리 (logback, Sentry)
‣ DB 관리 (백업, 복원)
‣ Swagger
Design 문지우 ‣ 디자인 총괄 반응형 구도작업
    - 헤더 디자인
    - 파비콘 & 로고 디자인
    - 배너 & 캐릭터 디자인
    - 전체페이지 반응형 디자인
    - 영상용 커버 및 자막배경 디자인

🛠 아키텍쳐



🛠 Tools


Backend

Java Spring SpringBoot MySQL



Dev tools



🍱 ERD

QuizPop

About

실전프로젝트 SpringBoot 백엔드용 레포

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages