이번 회의에서 논의할 부분
기획서 작성
- 프로젝트 개요
- 스터디를 진행하기 위한 책 선정
- 해당 책으로 스터디를 진행할 인원 모집
- 스터디 진행 내용의 정리
- 스터디 진행중 스터디 인원의 참여도 및 관리
- 사람들이 자주 스터디에 사용하는 책은 무엇이 있을까?
- 스터디를 모집할때 어디에서 모집해야 할까?
- 스터디 진행 내용을 어디에다 정리하는 것이 좋을까?
- 스터디 참여도가 저조한 인원에 대해서 벌금을 내게하거나 스터디 강퇴같은 조치를 쉽게하고 싶다.
- 서비스 타겟
- 책을 기반으로 스터디를 하고 싶은 모든 사용자
기획동기
현재 온라인에서 스터디를 하는 사람들이 늘어나고 있고, 특히 개발자 집단에서 책 중심으로 모여 스터디를 하는 양상을 보이고 있었습니다
하지만 사람들은 온라인에서 북스터디를
운영
. 관리
. 모집
하는 것에 어려움을 겪고사람들과 만나기 전까지 스터디가 어떻게 어떤 사람들과 진행될지 잘 모르고, 본인의 일정에 맞춰서 스터디를 찾기 힘든 부분도 있습니다. 또한 책을 보고 내용을 서로 공유하고 기록하는 공간이 github, 노션 등으로 통합된 서비스없이 파편화 되어있다고 느꼈습니다. 그러므로 하나의 서비스에서 북스터디를 운영, 관리 모집을 할수있게 하면 어떨까 싶어서 기획하게 되었습니다
기획 배경 및 동기
꾸준하게 증가하고 있는 책을 이용한 스터디 수요
현재 온라인에서 스터디를 진행하는 것이 계속해서 증가하고 있고 특히, 개발자 집단에서 책 중심으로 스터디를 하는 상황이 계속해서 늘어나고 있는 추세입니다.
온라인에서 책을 기반한 스터디를 진행하기 위해서는 다음과 같은 과정이 진행될 것입니다.
위와 같은 과정을 사람이 직접 진행할때 다음과 같은 문제를 겪었습니다.
→ 사람들이 스터디에서 자주 사용하는 책을 확인할 수 있는 공간이 있으면 좋겠다.
→ 스터디를 모집할 수 있는 공간이 있으면 좋겠다.
→ 각자 따로 정리하지 않고 한곳에다 정리할 수 있는 공간이 있으면 좋겠다.
→ 해당 서비스를 제공하는 사이트가 있으면 편리할 것 같다.
이와 같은 문제를 해결하기 위해 해당 내용을 통합적으로 제공하는 서비스를 만들면 좋겠다는 생각으로 기획하게 됐습니다.
- 프로젝트 내용 / 목표 / 서비스 설명
- 온라인으로 책에 대한 스터디를 모집 / 진행할 수 있는 서비스
- 목표
운영
.관리
.모집
쉽게 해주는 통합 서비스 제공- 온라인에서 북스터디를 더 효과적으로 할수있게, 퀴즈 및 서로의 의견을 나눌수 있는 통일된 서비스 제공
- 스터디 참여율을 높이기 위해 벌금이나 업적 시스템을 도입하여 활발한 스터디를 진행할 수 있도록 장려
- 유저스토리
“전문 서적"을 혼자 읽기 어려운 사용자들은
‘북 스터디'를 활용해 책을 완독하기 위해서
특정 책에 대한 ‘북 스터디’ 를 열거나 참여하기를 원한다.
‘북 스터디'에 참여하는 모든 사용자는
다른 사용자가 정리한 요약 및 독후감을 보기 위해
스터디원들과 소통하기 위한 공간이 있기를 원한다.
‘북 스터디'에 참여하는 모든 사용자는
그날 학습한 내용을 간단히 정리한 내용에 대해서 퀴즈를 만들어서
다른 사용자와 피드백을 갖는 기능을 원한다.
북 스터디'를 열려고 하는 사용자는
‘북 스터디' 참여 신청자의 참여도에 따라 가입 여부를 결정하기 위해서
신청자의 ‘참여도'를 알아보기 원한다.


Scenario: 사용자는 xxx 를 원합니다 - Given : `사용자`가 yyy 요청을 합니다 - When : `사용자`이/가 aaa 합니다 and : bbb도 합니다. and : ccc도 합니다. - Then : `사용자`은/는 아이템에 접근할 수 있습니다
- 유저 시나리오
- 비로그인 사용자
- 비로그인 사용자는 메인페이지에서 스터디가 열리고 있는 책 목록을 볼 수 있습니다.
- 비로그인 사용자는 책 상세페이지에서 스터디 목록을 볼 수 있고 스터디 모집글을 볼 수 있습니다.
- 비로그인 사용자는 책과 스터디를 검색할 수 있습니다.
- 비로그인 사용자는 소셜네트워크 로그인을 할 수 있습니다.
- 로그인 사용자
- 로그인 사용자는 메인페이지에서 스터디가 열리고 있는 책 목록을 볼 수 있습니다.
- 로그인 사용자는 책 상세페이지에서 스터디 목록을 볼 수 있고 스터디 모집글을 볼 수 있습니다.
- 로그인 사용자는 책과 스터디를 검색할 수 있습니다.
- 로그인 사용자는 다른 사용자의 스터디 참여도를 볼 수 있습니다.
- 로그인 사용자는 유저 정보를 수정할 수 있습니다.
- 로그인 사용자는 참여 중인 스터디를 볼 수 있습니다.
- 로그인 사용자는 스터디를 참여할 수 있습니다.
- 로그인 사용자는 스터디를 주최할 수 있습니다.
- 스터디 참여 중인 사용자
- 스터디 참여 중인 사용자는 해당 스터디 상세페이지에 접근할 수 있습니다.
- 스터디 참여 중인 사용자는 스터디 퀴즈, 독후감, 요약 정리를 작성, 수정, 삭제할 수 있습니다.
- 스터디 참여 중인 사용자는 다른 사용자가 쓴 게시글에 댓글을 달 수 있습니다.
- 스터디 참여 중인 사용자는 스터디가 끝난 후 스터디원들을 긍정/부정으로 평가할 수 있습니다.
- 스터디 참여 중이 아닌 사용자
- 스터디 참여 중이 아닌 사용자는 해당 스터디 모집 페이지만 접근할 수 있습니다.
시나리오
- 공통 페이지
노션처럼 왼쪽에 현재 참여중인 스터디 목록 보여주기
- 웹 서비스 진입 → 홈페이지 진입
- 홈페이지
책 검색 → 해당 되는 책 정보 및 개설된 스터디 확인, 새로운 스터디 개설 가능
로그인 → sns로그인으로 통일 카카오, 구글만 제공
개설된 스터디 목록 또는 현재 스터디중인 책목록 리스트
참여중인 스터디 목록페이지? → 노션처럼 왼쪽에 호버하면 띄우기
- auth페이지
로그인
- SNS 로그인만 가능
- 로그인시 자동회원가입
- 카카오톡, 구글
- 개별 책 페이지
책 정보 게시
책 정보 등록sequenceDiagram participant User participant View participant 도서시스템 participant Server participant DB User->>View: 책 링크를 통해 책 등록 신청 loop 도서정보 크롤링 View->>도서시스템: html 요청 도서시스템->>View: html 페이지 리턴 loop 파싱 View->>View: 파싱 -> 도서 정보 데이터 추출 end end View->>Server: 도서 등록 데이터 전송 Server->>DB: 도서 데이터 저장
개설된 스터디 목록 게시
해당 스터디 모집 페이지 확인 가능
해당 스터디 참여 요청 가능
새로운 스터디 개설 → 스터디 개설 페이지로 이동
- 개별 스터디 모집 페이지? (modal?) (tab?)
스터디 모집 관련 설명
스터디장
스터디 설명 - 소개글, 요일, 참여인원(현재/총), 스터디 종류태그 ( ex 개발, 인문학 )
스터디 참여 요청 또는 입장 버튼?
- 개별 스터디 내부 페이지
채널 목록 : 퀴즈, 자유게시판, 공지, ..?
메인 화면의 기능 - 채널 별 상이
- 퀴즈 : 회기 별 퀴즈
- 자유 : 그냥… 자유게시판..
- 공지 : 그냥… 공지게시판…
출석 인증: 스터디 시간 전후로 일정 시간동안 활성화
- 스터디 개설 페이지 (auth필요)
스터디 제목 입력
스터디 모집 정보 입력
스터디 소개글 입력
일정 입력
참여 인원 입력
책 선택
db에 있는 책목록 띄우기
만약 책이 없다면 책검색 페이지 또는 책입력 모달 띄우기
해당 책을 기준으로 yes24에서 데이터 크롤링하기
크롤링후 데이터 가공해서 서버와 통신
성공적으로 데이터가 입력되었으면 자동으로 해당 책 선택
sequenceDiagram participant User participant View participant 도서시스템 participant Server participant DB User->>View: 현재 등록 되어있는 책 목록 요청 or 책 검색 View->>Server: 등록되어있는 책 요청 Server->> DB: 책 데이터 요청 DB->> View: 책 목록 데이터 전송, IF 데이터 없을시 User->> View: 책 등록 요청 loop 도서정보 크롤링 View->>도서시스템: html 요청 도서시스템->>View: html 페이지 리턴 loop 파싱 View->>View: 파싱 -> 도서 정보 데이터 추출 end end View->>Server: 도서 등록 데이터 전송 Server->>DB: 도서 데이터 저장
- 메인 페이지
- 책
/create?isbn=’1234’
책 선택 (필요하다면)
- 우리 책 DB에서 검색
- 없으면 yes24 검색 화면 노출
- yes24 검색 후 프론트 크롤링
- 크롤링 정보 DB에 저장
간단한 스터디 설명 / 소개
스터디 공개 여부 설정
중도 참가가 가능하면 스터디의 진행률, 참석률 등을 통계로 제공
스터디 수정 페이지
책 검색하기
- 책은 ISBN 으로 검색한다
첫 페이지 → Main 페이지. ( 로그인 페이지 ❌ )
스터디 생성하기
- 사용자가 입력 해야 할 데이터
- View → Server 전송 데이터
- Header 에는 사용자 토큰 정보
- book_id
- 최대 인원 수
- 제목
- 설명
- 스터디 일정 (회차정보 → 요일?? 캘린더로 지정? )
sequenceDiagram participant User participant View participant Server participant DB User->>View: "스터디 생성하기" 클릭 View->>Server: 스터디 생성 요청(사용자 입력, 사용자식별정보) loop ValidationCheck Server->>Server: 토큰 기반 사용자 인증 성공 : return userId Server->>Server: 입력 데이터에 대한 유효성 검증 성공 -> 스터디엔티티 생성 end Server->>DB: 스터디 저장 Server->>View: 스터디DTO or 생성된스터디id
“나의” 스터디 목록sequenceDiagram participant User participant View participant Server participant DB User->>View: "개설한 스터디 목록" 클릭 View->>Server: "개설한 스터디 목록" 요청(유저식별정보(토큰)) loop ValidationCheck Server->>Server: 토큰 기반 사용자 인증 성공 : return userId Server->>Server: 입력 데이터에 대한 유효성 검증 성공 end Server->>DB: study 목록 요청 ( userId, 방장여부(true), 페이지네이션정보 ) DB->>Server: 스터디 목록 Server->>View: 스터디DTO 목록
sequenceDiagram participant User participant View participant Server participant DB User->>View: "참여 스터디 목록" 클릭 View->>Server: "참여 스터디 목록" 요청(유저식별정보(토큰)) loop ValidationCheck Server->>Server: 토큰 기반 사용자 인증 성공 : return userId Server->>Server: 입력 데이터에 대한 유효성 검증 성공 end Server->>DB: study 목록 요청 ( userId, 방장여부(false), 페이지네이션정보 ) DB->>Server: 스터디 목록 Server->>View: 스터디DTO 목록
요구사항 명세서
논의한 내용
- 기획서 작성
- 프론트에서 책 정보 크롤링해서 백으로 넘기기
- 데이터 양식 예시
{ author: '앙투안 드 생텍쥐페리', title: '어린 왕자', company: '열린책들', isbn: '123456789012', writedDate: '2015-01-01', // 목차 여부 미정 table: '1. 목차1\n 2. 목차2', }
- 피그마 와이어프레임
- 스터디 개설은 바로 불가능. 책 검색 / 선택 후에 스터디 개설 가능
다음 회의에서 논의할 부분
- 프론트: 디자인 및 색상
- 백: ERD 및 데이터 형식