서비스 시나리오
- 공통 페이지
노션처럼 왼쪽에 현재 참여중인 스터디 목록 보여주기
- 웹 서비스 진입 → 홈페이지 진입
- 홈페이지
책 검색 → 해당 되는 책 정보 및 개설된 스터디 확인, 새로운 스터디 개설 가능
로그인 → 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 목록