/QuizDot

다양한 상식을 재밌게 익힐 수 있는 퀴즈 게임 서비스, QuizDot

Primary LanguageTypeScript


QuizDot LOGO

다양한 상식을 재밌게 익힐 수 있는 퀴즈 게임 서비스

삼성 청년 소프트웨어 아카데미 자율 프로젝트

[ SSAFY 자율 PJT ] TEAM 막내온탑


목차

  1. 웹 서비스 소개
  2. 기술 스택
  3. 주요 기능
  4. 프로젝트 구성도
  5. 서비스 화면
  6. 개발 팀 소개
  7. 개발 기간 및 일정
  8. 디렉터리 구조
  9. 산출물

✨ 웹 서비스 소개

야, 니가 그렇게 퀴즈를 잘해 ❓ 퀴즈닷으로 따라와 😠
QUIZDOT은 퀴즈를 다양한 게임 모드를 통해 풀어볼 수 있는 웹 어플리케이션입니다.
QUIZDOT을 통해 사용자들은 다양한 분야의 상식을 조금 더 재밌게 키워볼 수 있습니다.


🛠️ 기술 스택

Frontend

React CSS3 HTML5 TypeScript Tailwind CSS
HTML5 CSS3 React Typescript Tailwind
CSS
react query zustand eslint stomp axios
React
Query
Zustand Eslint Stomp js Axios
prettier vite
Prettier Vite

Backend

Java Spring hibernate Stomp js Redis
Java Spring Hibernate Stomp js Redis
swagger jasypt security mysql
Swagger JWT Spring
security
MySQL

DevOps

AWS Docker Nginx Jenkins
AWS Docker Nginx Jenkins

Tools

notion gitlab jira Tailwind CSS
Notion Gitlab Jira Mattermost

💡 주요 기능

기능 내용
노말 모드 주어진 문제를 풀고 정답을 맞춘 순서에 따라 점수를 산정하고 게임이 끝났을 때 합산한 점수를 통해 순위가 정해집니다.
서바이벌 모드 문제를 풀었을 때 정답 여부에 따라 생존과 탈락이 구분되며 만약 생존자들이 모두 틀렸을경우 탈락자 중 정답자가 존재한다면 해당 정답자를 부활시킵니다. 최후의 1인이 남게 되었을 때 게임이 종료됩니다.
일기토 모드 상대방이 풀게 될 문제를 직접 선택하여 진행하게 됩니다. 선택한 문제를 풀지 못하면 체력이 감소하게 되며 체력이 모두 소진되면 게임이 종료됩니다.
리워드 게임을 통해 얻을 수 있는 코인을 통해 캐릭터 뽑기나 닉네임 색상 랜덤 변경권을 구매할 수 있습니다.
도전과제 주어진 도전과제를 달성하게 될 경우 해당 도전과제에 대한 칭호를 해금시킵니다. 해금된 칭호는 장착할 수 있습니다.

📂 프로젝트 구상도

아키텍처



🖥️ 서비스 화면

메인 화면 회원가입
= =
캐릭터 뽑기 캐릭터 변경
= =
멀티 / 문제 풀이 멀티 / 게임 결과
= =
일기토 / 문제 선택 일기토 / 문제 풀이
= =
서바이벌 / 게임 매칭 서바이벌 / 문제 풀이 서바이벌 / 부활
= = =

👨🏻‍💻 개발 팀 소개

FE FE FE BE BE BE / INFRA
이성모 프로필 이준수 프로필 정수빈 프로필 김익환 프로필 최부광 프로필 황윤정 프로필
이성모 이준수 정수빈 김익환 최부광 황윤정

🗓️ 개발 기간 및 일정

24.04.08. ~ 24.05.20


📂 디렉터리 구조

Front-end

QUIZDOT-CLIENT
├─app
├─images
├─pages
│  ├─channel
│  │  ├─api
│  │  ├─components
│  │  └─hooks
│  ├─findPwd
│  │  ├─api
│  │  └─components
│  ├─ilgito
│  │  ├─api
│  │  └─components
│  ├─invitingLink
│  │  ├─api
│  │  └─components
│  ├─lobby
│  │  ├─api
│  │  ├─components
│  │  └─hooks
│  ├─logIn
│  │  ├─api
│  │  └─components
│  ├─main
│  │  ├─api
│  │  └─components
│  ├─multi
│  │  ├─api
│  │  ├─components
│  │  └─hooks
│  ├─resetPwd
│  │  ├─api
│  │  └─components
│  ├─signUp
│  │  ├─api
│  │  └─components
│  ├─survival
│  │  ├─api
│  │  ├─components
│  │  └─hooks
│  └─waitingRoom
│      ├─api
│      └─components
├─shared
│  ├─apis
│  ├─components
│  ├─css
│  ├─hooks
│  ├─stores
│  │  ├─connectionStore
│  │  └─userStore
│  ├─ui
│  └─utils
└─widgets
    ├─myPage
    │  ├─api
    │  └─components
    └─userInfo
        ├─api
        └─components

Back-end

QUIZDOT-SERVER
├─java
│  └─com
│      └─mnot
│          └─quizdot
│              ├─domain
│              │  ├─member
│              │  │  ├─controller
│              │  │  ├─dto
│              │  │  ├─entity
│              │  │  ├─repository
│              │  │  └─service
│              │  └─quiz
│              │      ├─controller
│              │      ├─dto
│              │      ├─entity
│              │      ├─repository
│              │      └─service
│              └─global
│                  ├─config
│                  ├─jwt
│                  ├─result
│                  │  └─error
│                  │      └─exception
│                  └─util
└─resources

📃 산출물