f-lab-edu / f-lab-edu/chemi_log
[FR-01,02,03] 케미방 생성과 질문 세트 확정
Open
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 10d 11h
- Merged PRs (30d)
- 1
Description
배경
케미방이 없으면 답변도 결과도 만들 수 없다. MVP의 모든 흐름이 여기서 시작한다.
PRD 5장 핵심 사용자 흐름의 첫 두 단계에 해당한다.
- 관련 요구사항: FR-01, FR-02, FR-03
- PRD: https://github.com/f-lab-edu/chemi_log/wiki/PRD
범위
포함
- 닉네임 입력 → 케미방 생성
- 방 생성 시점에 질문 12개와 순서 확정 (카테고리별 3개)
- 공유 코드 발급
- 방 초기 상태
HOST_ANSWERING - 테이블:
question(+시드),room,room_question,participant
제외
- 답변 제출과
OPEN전환 → 다음 이슈 answer테이블 → 다음 이슈- 초대 링크로 참여 → 이후 이슈
작업 순서
- ERD 작성 (4개 테이블 관계 확정)
- DDL + 질문 12개 시드 작성
- JPA 엔티티, 리포지토리
- 질문 세트 생성 로직 (카테고리별 3개 무작위 추출)
- 공유 코드 생성 로직
-
POST /api/rooms - 닉네임 입력 화면, 방 생성 완료 화면
설계 시 확정할 것
question↔room_question은 FK로 잇지 않는다.
PRD 8장에 따라 질문 Pool이 수정되어도 기존 방의 질문은 바뀌지 않아야 하므로 값 복사(스냅샷)로 둔다.room↔participant는 순환 참조다.
방장은 첫 번째 참여자(PRD 5장)이므로room.host_participant_id는 nullable로 두고 방 생성 후 채운다.- 공유 코드는 추측하기 어려워야 한다 (PRD 7장).
완료 조건
- 방 생성 시 정확히 12개의 질문이 생성된다
- 4개 카테고리별로 질문이 3개씩 포함된다
- 같은 방의 모든 참여자가 같은 질문과 같은 순서로 답한다
- 카테고리별 활성 질문이 3개 미만이면 방 생성을 중단하고 오류로 기록한다
- 360px 폭에서 가로 스크롤 없이 방 생성이 가능하다
- 방 생성 직후 상태가
HOST_ANSWERING이다
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked PRD, then define the ERD for question, room, room_question, and participant before writing the DDL and question seed. Implement the POST /api/rooms flow and the nickname and completion screens, keeping the listed snapshot and host-reference constraints in scope. Done means all listed completion conditions pass, including 12 ordered questions, room state, error handling, and 360px layout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, database, frontend, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100