팀 노션 | 백로그 | 그라운드 룰 | 기획서 | figma | 개발위키
다수의 사용자가 로그인 없이 함께 참여할 수 있는 실시간 퀴즈 플랫폼 BooQuiz 입니다.
초기 소규모 서비스에서 시작해 점진적 확장과 기술적 완성도를 함께 추구함
영역 | 기술 스택 |
---|---|
공통 | |
Frontend | |
Backend | |
인프라 | |
협업 도구 |
timeline
title 전체 타임라인
section 0주차
프로젝트 기획 단계: 🎯 팀 빌딩 및 아이디어 도출 : 🔄 서비스 기능 구체화 : 🛠 기술 스택 및 개발 프로세스 확정
section 1주차
프로젝트 기반 구축: 🏗 모노레포 환경 구성 : 📝 기술 문서화 : 🔧 개발 컨벤션 정립
section 2주차
기반 기능 구현: 🎨 UI/컴포넌트 라이브러리 구축 : 💻 퀴즈존 모듈 설계 : 🔌 WebSocket 기본 연결 구현
section 3주차
단일 사용자 기능: 🏗 퀴즈 진행 상태관리 구현(FE) : ⚡ 퀴즈 진행/채점 로직 : 🚀 CI/CD 및 Docker 구성
section 4주차
다중 사용자 지원: 📦 퀴즈 진행 상태관리 리팩토링 : 🔌 WS 메시지 큐 구현 : 👥 동시접속 및 권한 관리
section 5주차
시스템 고도화: ⚡ WebSocket 최적화 : 💾 DB 연동 : 📊 실시간 순위 시스템 : 🎨 UI/UX 개선
timeline
title 0-1주차 (10/21 - 11/02)
section 0주차 - 팀 빌딩 (10/22 ~ 10/27)
10/22(일) : 팀원 자기소개 및 역량 공유
: 프로젝트 아이디어 브레인스토밍
: BooQuiz(도전골든벨) 초기 아이디어 도출
section 아이디어 구체화 (10/24)
10/24(화) : BooQuiz 서비스 세부 기능 논의
: 실시간 참여형 퀴즈 플랫폼 컨셉 확정
: 트래픽 테스트를 위한 방 인원 조절 기능 구상
: 부스트캠프 테마 퀴즈 콘텐츠 기획
section 기술 스택 및 규칙 확정 (10/27)
10/27(금) : 🔄 기술 스택 최종 확정
: FE - React / BE - NestJS
: 🔧 개발 프로세스 설정
: Git 브랜치 전략 수립 (main-dev-feat)
: PR 리뷰 프로세스 확립, 테스트 코드 작성 원칙
: 🔄 프로젝트 그라운드 룰 설정
section 프로젝트 기반 구축 (10/28 ~ 10/30)
10/28: 프로젝트 초기화
: 모노레포 설정
10/30: 저녁 팀 멘토링
section 문서화 및 규칙 (10/31)
10/31: README 작성
: 기술 스택 선정 문서화
section 개발 환경 설정 (11/01 ~ 11/02)
11/01: 1주차 데모데이
11/02: 이슈/PR 템플릿 추가
: 개발 컨벤션 정립
짧은 개발 기간 동안, 실시간 통신 더불어 팀원의 개인 목표에 도전해볼 수 있는 프로젝트 기획 팀의 주차별 목표 설정을 통해 안정적인 진행과 팀원 동기 부여에 기여.
timeline
title 2주차 (11/03 - 11/09)
section 기반 기능 구현
11/03(일) : 🎨 Frontend/기반 : shadcn UI & Tailwind 설정
: 🔧 DevOps/기반 : Husky & Commitlint 설정, Prettier 설정
: 💻 Backend/기반 : 퀴즈존 모듈/리포지토리 인터페이스 설계
section 컴포넌트 개발
11/04(월) : 🎨 Frontend/기반
: Button, Typography, CommonInput 컴포넌트
: ContentBox, Layout 컴포넌트 구현
: 💻 Backend/기반
: 퀴즈존 메모리 저장소 구현
: 세션/쿠키 설정
: 저녁 현우님 개인 멘토링
11/05(화) : 🎨 Frontend/기반
: Storybook 설정 및 컴포넌트 스토리 작성
: 💻 Backend/기반
: 컨트롤러/서비스 레이어 테스트 코드
: 👥 저녁 준현, 현민, 선빈 개인 멘토링
section WebSocket 구현
11/06(수) - 11/07(목) : 💻 Backend/기능
: WebSocket 게이트웨이 구현
: 기본 연결 및 이벤트 핸들링 구현
: SuperWSTest 기반 WS 테스트
: 🎨 Frontend/기능: Alert Dialog, TextCopy 컴포넌트 추가
: 🔄 2주차 통합
: 공통 컴포넌트 라이브러리 완성
: WebSocket 기본 연결 테스트
11/08(금) : 📊 2주차 데모데이
11/09(토) : 🧘 2주차 모각글
timeline
title 3주차 (11/10 - 11/16)
section 퀴즈존 기본 구현
11/10-11/11: 🎨 QuizZoneManager 초기 상태관리 구현
: 퀴즈존 생성 페이지 퍼널 구조 구현
: 💻 실시간 퀴즈 진행 이벤트 처리
section UI/UX 구현
11/11-11/12: 🎨 Timer 컴포넌트 개선
: Progress Bar 애니메이션 구현
: 💻 답안 제출 및 채점 로직
: 🔧 Winston 로거 및 CI/CD 구축
section 기능 개선
11/13-11/14: 🎨 실시간 점수/랭킹 표시
: 퀴즈 결과 화면 개선
: 💻 API 문서화 (Swagger/TSDoc)
: 🔧 staging 환경 구축
section 통합 및 테스트
11/14: 💻 Docker 컨테이너 설정
: 환경변수 분리
: 🔄 3주차 통합
: 실시간 퀴즈 진행 테스트
: 단일 사용자 퀴즈 풀이 검증
section 데모 및 회고
11/15: 📊 3주차 데모데이
11/16: 🧘 3주차 모각글
timeline
title 4주차 (11/17 - 11/23)
section 초기 구현
11/17-11/20: 🎨 useTimer, useQuizZone 훅 분리
: useWebSocket 커스텀 훅 구현
: 💻 10인 동시접속 처리 로직
: 참여자 상태 관리 개선
: 👤 저녁 동현님 개인 멘토링
section 상태 관리
11/17-11/21: 🎨 퀴즈존 타입 시스템 정의
: 상태 머신 기반 이벤트 처리
: 💻 퀴즈존 리포지토리 리팩토링
: 방장 기반 권한 시스템
: 방장-참여자 권한 테스트
section 테스트 및 개선
11/20-11/21: 🎨 useTimer/useQuizZone 테스트
: 커넥션 비정상 종료 처리
: 💻 퀴즈 정답 제출 로깅
: 다중 사용자 연결 관리 개선
: 👥 저녁 현민님, 선빈님 멘토링(11/20)
: 👥 저녁 현우님, 준현님 멘토링(11/21)
section 시스템 안정화
11/20-11/21: 🎨 WebSocket 메시지 큐 구현
: base64 인코딩/디코딩 처리
: 💻 동시성 처리 검증
: 🔧 Docker 배포 환경 구축
: 🔄 4주차 통합 및 테스트
: 다중 사용자 퀴즈 진행 테스트
section 데모 및 회고
11/22: 📊 4주차 데모데이
11/23: 🧘 4주차 모각글
timeline
title 5주차 (11/24 ~ 11/28)
section 웹소켓 최적화
11/24-11/25: 💻 WebSocket 커스터마이징
: play gateway 리팩토링
: 엔티티 분리 및 연결 로직 개선
section 채팅 기능 구현
11/25-11/26: 💻 채팅 모듈 추가
: 채팅 서비스 통합
: 퀴즈 제출/진행 처리 개선
section UI/UX 개선
11/26-11/27: 🎨 퀴즈존 입장 처리 에러 핸들링
: 유효성 검사 문구 및 글자 수 제한 추가
: 결과 페이지 레이아웃 개선
: 👥 팀 멘토링
section DB 연동 및 통합
11/27-11/28: 💾 채팅 서비스 종료 처리 구현
: 💻 퀴즈존 컨트롤러 채팅 서비스 통합
: 🔄 충돌 UI 수정 및 테스트
section 데모 및 회고
11/28: 📊 5주차 데모데이
11/28: 🧘 5주차 모각글
timeline
title 6주차 (11/29 ~ 12/03)
section 마무리 작업
11/29-11/30: 🔄 리드미 및 문서 업데이트
: 아키텍처, 기능 설명 추가
: 로고 및 UI 개선
section 사용자 피드백 반영
12/01-12/02: 🎨 채팅 결과 페이지 개선
: 퀴즈존 생성 페이지 유효성 검증 강화
: 인터페이스 디자인 개선
: WebSocket 재연결 로직 강화
section 최종 코드 리팩토링
12/02-12/03: 🔧 채팅 서비스 및 메모리 레포지토리 개선
: 퀴즈존 입장 처리 에러 핸들링 수정
: UI 충돌 이슈 해결
section 최종 안정화
12/03: 💻 웹소켓 재연결 처리 보완
: 메시지 큐 시스템 안정화
: UI 버그 수정
: 📊 최종 데모 준비
git clone https://github.com/boostcampwm-2024/web08-BooQuiz.git
npm install -g pnpm
pnpm install
echo -e "VITE_API_URL=http://localhost:3000\nVITE_WS_URL=ws://localhost:3000" > /apps/frontend/.env.development
pnpm run start
/
├── frontend/ # 프론트엔드 애플리케이션
│ ├── src/
│ │ ├── blocks/ # 페이지별 주요 컴포넌트
│ │ ├── components/ # 재사용 가능한 컴포넌트
│ │ ├── hook/ # 커스텀 훅
│ │ └── pages/ # 페이지 컴포넌트
│ └── ...
│
├── backend/ # 백엔드 애플리케이션
│ ├── src/
│ │ ├── common/ # 공통 유틸리티
│ │ ├── core/ # 핵심 기능
│ │ ├── quiz-zone/ # 퀴즈존 상태 정보 관리
│ │ ├── quiz/ # 퀴즈 CRUD
│ │ └── play/ # 실시간 퀴즈 관리
│ └── ...
└── ...
J004 강준현 | J074 김현우 | J086 도선빈 | J175 이동현 | J217 전현민 |
---|---|---|---|---|
gitGraph
commit
branch develop
checkout develop
commit
branch "feature/#issue"
checkout "feature/#issue"
commit
commit
checkout develop
merge "feature/#issue"
checkout main
merge develop