프로젝트 요구사항 정리하기 (UserStory)
우리 프로젝트의 목적 차별점 생각해보기
Entity 뽑아내기
ERD 어떻게 할지 정하기
개발 계획 (역할 분담)
API 설계 어떻게 할지 정하기
팀 컨벤션(협업 툴, 깃플로우, 코드 컨벤션)
프로젝트 개요
프로젝트 목적
- 연수
- 사용자: 원데이 클래스를 예약을 할때 클래스 정보, 시간 가격등 한번에 조회 하고 예약을 편하게 할 수 있는 서비스를 만든다.
- 공방 주인: sns기능을 통해 나의 공방의 성격을 어필 함으로써 홍보 효과를 얻을 수 있다.
- 예약관리를 쉽게 할 수 있다.
- 지훈
- 사용자 대상 : 원데이 클래스들을 한번에 조회하고 예약 할 수 있는 플랫폼을 만든다.
- 공방 주인 대상 : 나의 재능을 통해 쉽게 부업을 할 수 있게 중계해주는 플랫폼을 만든다. ( 부업 = 원데이클래스 )
- 아프리카TV 같은 개인방송 처럼 일반인을 위한 개인 공방 플랫폼!
- 영범
- 사용자 : SNS 기능을 결합해 내가 관심있는 공방의 소식을 쉽게 접하고 추가로 예약까지 한번에 가능하게 하여 공방과 이용자간의 거리를 좁힌다.
- 공방 : 광고비를 절약하고 보다 소비자들에게 쉬운 어필이 장점. 여타 종합 사이트와 달리 SNS처럼 관리를 직접 하기 때문에 빠른 소식전달, 보다 많은 정보를 보여줄 수 있음.
- 공통사항
- 사용자가 편리해야하고
- 사용자가 편리해야하고
- 사용자와 공방 모두 이익이 있어야하고
- 플랫폼을 통해 개발하는 사람도 이익이있어야함(사용자 수가 많아야한다)
- 사용자
- 원데이 클래스들을 한번에 조회하고 예약 할 수 있는 플랫폼
- 공방주인
- 나의 공방을 올리고 홍보할 수 있는 플랫폼
- 홍보는 SNS기능
- 차이점
- 지훈 : 공방은 "개인공방" 단위, 별로의 물리적 공방이 없어도 누구나 공방주인이 될 수 있음
- 영범, 연수 : 공방은 실제로 공방을 직업으로 하는 사람들만 공방주인이 될 수 있음
목적을 위해 어떤점이 필요할지?
- 연수
- 사용자
- 원하는 카테고리의 공방 정보나 클래스 정보를 빠르게 볼 수 있도록 해야한다
- 공방주인
- 홍보 효과를 극대화 하기 위해서 플랫폼의 sns 기능을 활성화 해야한다..?
- 지훈
- 사용자
- 원하는 원데이 클래스들을 한번에 모아볼 수 있는 게시판이 필요
- 원하는 클래스의 조건별로 빠르게 검색 할 수 있어야 한다.
- 공방주인
- 나의 공방을 마음껏 홍보 할 수 있어야 한다.
- 우리 공방은 이런 것들을 만들어요~
- 우리 공방은 사람들끼리 이렇게 친해요~
- 우리 이런거 만들껀데 안오실래요??
- 공방주인이 얼마나 괜찮은 사람인지에 대해서 알릴 수 있어야 한다.
- 공방 후기에 주인이 넘나 친절해요 라고 써있는 것
- 공방 랭킹이 있으면 좋을 듯 하다.
- 영범
- Simple is best. 이용자들과의 거리를 좁힌만큼 한 눈에 공방의 성격이나 정보를 파악할 수 있게 프로필에 평점, 후기들이 요약되어 볼 수 있으면 좋겠음
- 후기 작성을 통해 다른 이용자들이 보다 많이 결정에 참고할 수 있게 되므로 그에 대한 포인트나 쿠폰 같은 유인책이 있으면 좋을 것 같음
- 공통사항
- 원데이 클래스를 한번에 모아 볼 수 있어야 한다. (쉬운접근)
- 나의 공방이 얼마나 멋진지 보여줄 수단이 필요하다. (홍보)
- SNS
- 랭킹
- 후기
- 차이점
- 영범 : 공방 후기 작성 등을 유도하기 위해 쿠폰이나 포인트 시스템이 필요할 것 같다. → 소비자들이 보다 양질의 선택을 할 수 있도록 유도하기 위함
우리 프로젝트의 차별점? 특징?
- SNS를 통한 공방 홍보기능이 강하다.
- 다른 플랫폼을 거치지 않고 공방주인이 직접 자신의 공방을 홍보한다.
User Story
회원가입



- 사용자는 일반 회원가입과 소셜 계정 회원가입을 할 수 있다.
- 소셜은 일단 카카오만 한다.
- 사용자는 일반 사용자, 공방주인으로 나누어서 회원가입을 할 수 있다.
- 일반 회원가입은 기본적인 인적사항을 입력하고 회원가입을 진행한다.
- 공방주인 회원가입은 기본 인적사항 입력 후 공방 정보를 입력해서 공방 등록을 진행한다.
- 공방 등록시 필요한 정보는 다음과 같다
- 공방이름
- 공방 주소지
- 공방 상세주소
- 오피스 아워
- 연락처
- 사장이름
- 카테고리
- 사업자등록 번호
- 회원가입 후 관심지역(구 단위), 닉네임, 연락처, 프로필이미지 기입한다.
로그인
- 회원가입한 정보로 로그인을 진행한다.
메인페이지(카테고리 목록)

- 메인화면에는
카테고리 목록
,금주 인기 클래스 목록
이 표시된다.
- 카테고리를 클릭하면 해당 카테고리에 해당하는 원데이 클래스 목록 화면으로 이동한다.
- 원데이 클래스 목록은 회원가입 시 지정한 지역에 위치한 원데이 클래스만 조회한다.
- 금주 인기 클래스 목록이 표시된다.
- 인기 클래스도 회원가입시 지정한 지역에 위치한 원데이 클래스만 조회
- 인기클래스의 척도는 예약자수로 측정한다.
클래스 목록 페이지
- 카테고리 선택 후 들어가는 페이지이다.
- 내가 설정한 지역을 우선 조회한다.
- 지역을 변경하여 해당 지역의 원데이 클래스 목록을 조회할 수 있다.
클래스 상세 페이지


- 원데이 클래스 정보를 볼 수 있다.
- 사진
- 제목
- 클래스 설명
- 카테고리정보
- 커리큘럼
- 클래스 가격
- 후기 목록
- 내용
- 이미지
- 유저 닉네임
- 하단에 예약하기 버튼을 Fix한다.
- 별점을 빼자고 이야기가 나왔다.
예약 페이지( By 사용자 )
- 예약정보를 보고 예약을 할 수 있다.
- 보여지는 정보
- 시간 정보(날짜, 시간)
- 인원정보→ 최대 인원이랑 현재 가능한 인원
- 유저는 원하는 시간, 인원을 선택해서 예약을 할 수 있도록 한다.
- 예약자에 대한 정보는 회원의 기본정보를 전달하여 인원 외에 추가적인 정보를 물어보지는 않는 것으로 간주

- 결제는 따로 구현하지 않는다.
메인 페이지(피드)
피드 조회 페이지
- 유저는 자신이 팔로우 한 공방의 피드들을 볼 수 있다.
- 팔로우 한 공방이 없으면 피드가 없는 상태로 보여진다.
- 피드는 아래와 같은 내용으로 구성된다.
- 사진
- 공방 이름(프로필사진)
- 내용
- 좋아요
- 댓글(보류대상)
- 유저가 원하는 피드에 좋아요를 누를 수 있다.
- 상단에 팔로우 목록 버튼을 누르면 내가 팔로우한 공방 목록을 볼 수 있다.
- 팔로우는 따로 허가가 필요 없다.
- 피드 게시물의 공방 이름을 누르면 공방으로 이동
공방 소개 페이지

- 공방에 대한 소개를 할 수 있는 페이지이다.
- 해당 페이지는 아래와 같은 내용으로 구성된다.
- 공방 이름
- 공방 주소
- 공방 영업시간
- 팔로우
- 공방은 고정된 공방주소가 있는 것을 전제로 한다.
- 공방 주소를 누르면 네이버 지도로 이동 할 수 있다.
- 팔로우를 통해 피드 화면에서 해당 공방의 게시글을 확인할 수 있다.
- 공방 피드 목록 탭
- 공방에서 홍보를 목적으로 작성한 피드(게시글)목록이 표시된다.
- 피드 목록에는 다음과 같은 정보가 있다.
- 사진
- 사진을 누르면 상세 피드를 볼 수 있다.
- 상세 페이지에는 다음과 같은 정보가 있다
- 사진
- 텍스트
- 좋아요
- 댓글(보류대상)
- 공방 원데이 클래스 목록 탭
- 공방에서 등록한 원데이 클래스들을 보여준다
- 원데이 클래스 목록에는 다음과 같은 정보가 있다
- 원데이 클래스 이름
- 원데이 클래스 사진
- 원데이 클래스 클릭시 해당 클래스의 상세페이지 및 예약할 수 있는 페이지로 이동한다
- 원데이 클래스 목록은 마감여부 상관없이 공방에서 등록한 모든 원데이클래스를 조회한다.
- 원데이 클래스 목록은 현재 활성화된 클래스를 우선으로 보여주고 마감된 원데이 클래스는 후순위로 한다. → 프론트에서 처리
- 해당 날짜에 예약이 불가능한 원데이 클래스들의 비활성화처리 등은 프론트에서 처리

- 공방 후기 목록 탭
- 해당 공방의 모든 클래스에 등록된 후기들을 보여준다
- 후기에는 다음과 같은 정보가 있다.
- 사진
- 후기 내용
- 사용자 닉네임

피드 작성 페이지( By 공방주인 )
- 공방 피드를 작성 할 수 있다.
- 피드에는 아래의 내용이 들어간다.
- 게시글
- 사진
클래스 등록 페이지(By 공방주인)
- 원데이 클래스를 등록 할 수 있다.
- 등록할 정보는 아래와 같다.
- 사진
- 제목
- 카테고리 정보
- 원데이 클래스 가격
- 소요시간
- 최대인원
- 클래스 설명
- 클래스에 대한 설명
- 커리큘럼 (글만 적기로 정함)
- 개설할 클래스 시간정보 입력(요일, 시간대)
- 클래스 시간
- 시간 정보 입력 방식
- 개설할 클래스 시간정보 입력 방식은 다음과 같다
- 날짜는 달력으로 입력한다.
- 시간은 직접 입력하도록 한다.

- 날짜/시간 입력은 "반복주기"를 설정해서 입력 할 수 있다.
- 프론트쪽에서 날짜들을 쭉 나열하고 그 날짜 목록을 서버에 보내주기로 정해졌다.
- 공방주인이 반복되는 날짜중에 원하지 않는 날짜가 있을 수 있기 떄문에 이런 방식을 선택했다.
검색 페이지

- 공방/원데이클래스에 대한 검색을 할 수 있다.
- 검색시 공방검색, 원데이 클래스 이름 검색을 동시에 진행한다.
- 클래스 명으로 검색
- 공방 이름으로 검색
- 한 화면에 두 종류의 리스트가 존재한다
- 공방리스트
- 원데이 클래스 리스트
- 검색은 일단 전체 지역을 대상으로 한다.
마이페이지(유저)

- 유저의 마이페이지에는 다음과 같이 구성되어있다
- 프로필 사진
- 내정보(수정하기)
- 예약내역
- 팔로잉하는 공방
- 내가 쓴 후기 목록
- 찜한 클래스(보류)
마이페이지(공방)
- 공방의 마이페이지에는 다음과 같이 구성되어있다
- 내공방(수정하기)
- 예약내역(기간별?)
Entity 정리
영범
- 회원
Id, 닉네임, 이메일주소(가입), 전화번호, 지역구, 카테고리, 이미지, 가입일자
- 공방(공방주인 + 공방정보)
id 값, 공방이름, 공방주인이름, 사업자등록번호, 공방주소, 공방카테고리, 공방지역구, 공방사진, 오피스아워 + 공방유저 정보 매핑, 프로필 이미지, 가입일자
- 피드(게시판)
피드이미지, 글, (공방-피드(일대다)이랑 매핑)
- 클래스
Id, 클래스명, 클래스 카테고리, 지역구, 이미지, 가격, 시간, 최대인원수, 예약수 + 공방 정보 매핑, 평점
- 리뷰
id, 제목, 내용, 평점, 이미지 + 리뷰 남긴 유저 정보 매핑, 등록일자, 수정일자
- 리뷰 이미지
- 예약
id, 예약 클래스명, 예약일자, 결제정보, 가격, 예약번호(id값 아닌 다른 값), 공방정보(공방이름, 연락처), 예약유저 이름, 연락처
- 게시글 좋아요
- 공방 팔로우
회원(1) -< 리뷰(N)
리뷰(N) >- 클래스(1)
클래스(1) -< 예약(N)
회원(1) -< 예약(N)
게시글(N) >- 공방(1)
연수
- 회원
- 아이디, pw,주소, 닉네임, 연락처, 프로필이미지, 전화번호,(매핑-팔로우한 공방 목록), 매핑(내가 예약한 클래스),매핑(내가 남긴 리뷰)
- 공방(공방주인+공방정보)
- 아이디 , pw, 공방 주소, 공방 이름, 공방주인 이름, 공방 이미지, 공방 번호,오피스 아워, 공방 카테고리,(매핑- 개설한 클래스들),(매핑- (유저)팔로워들),
- 피드(게시글)
- 사진, 내용, 좋아요,
- 클래스
- 클래스 이미지, 클래스 이름, 클래스 설명, 클래스 개설 시간, 클래스 최대 인원, 클래스 현재 인원수 , 클래스 예약자수
- 리뷰
- 예약
- 댓글(보류사항)
- 좋아요
- 팔로우
지훈
- 회원 ( 일반 사용자 / 공방 주인 / 관리자 )
- 공방
- 원데이 클래스
- 피드
- 예약
- 찜(원데이클래스에 대한 찜)
- 카테고리
- 팔로우
- 좋아요(피드 좋아요)
- 찜(원데이 클래스 찜)
테이블 목록
- 회원- (지훈)
- 공방-
- 원데이 클래스-
- 피드(게시글)-
- 예약-
- 카테고리
- 팔로우
- 좋아요
- 리뷰
- (찜, 댓글, 쿠폰)
API 목록
유저 회원가입
공방 회원가입
유저 정보수정
공방 정보수정
로그인
카테고리로 클래스 검색
검색어로 공방 검색
검색어로 클래스 검색
지역 변경
금주의 인기클래스(예약에 대한 기간조회 방식으로)
클래스 상세정보 불러오기
클래스 등록하기
클래스 날짜별 조회
클래스 예약하기
클래스 예약취소
클래스 인원수 체크
공방 피드(게시글) 작성
+ 찜하기
최종 결정사항
- 분담한 Entity별로 ERD를 각자 작성해서 합친다.
- 지훈
- 회원- (지훈)
- 공방-
- 연수
- 원데이 클래스-
- 피드(게시글)-
- 예약-
- 영범
- 카테고리
- 팔로우
- 좋아요
- 리뷰
- (찜, 댓글, 쿠폰)
- CI,CD는 연수, 지훈이 각자 공부해서 내용을 공유한 후 방법을 결정한다.
- 베이스 프로젝트를 "지훈"이 Git에 올려놓는다.