###### tags: `서비스 요구사항`
프로젝트 김농만 요구사항
====
[toc]
:::info
**Semantic Versioning**
[Ref](https://semver.org/)
프로젝트 김농만은 semantic versioning 규칙을 따른다.
**Version: 0.0.1**
Major version up: 이전 버전의 기능들과 함께 사용이 불가능한 새로운 기능을 개발할 때마다
Minor version up: 새로운 기능일 추가될 때마다
Patch version up: 현재 기능의 버그를 수정할 때마다
:::
## 낭만농객
낭만농객은 로컬트립을 이어주는 플랫폼
## 목적
낭만농객 서비스를 만들어 사용자들이 지친 현대속에서 마음이 따뜻해질 수 있게 함
## 용어 정의
:::spoiler
### 농만쓰
낭만농객 서비스를 사용하는 모든 가입자
### 농만이
낭만농객 서비스를 사용하는 가입자
:::
## 사용자 요구사항 정의
낭만농객 웹 서비스에 대한 요구사항을 정의한다.
### :snowboarder: 인증
사용자가 낭만농객을 이용하기 위해 인증하는 요구사항을 정의한다.
- 이메일로 이용을 하는 사용자는 회원가입을 통해 계정을 생성할 수 있다.
- 회원가입 시 다음의 **정보**를 기입한다.
- 비밀번호
- 이메일
- 이메일은 이메일 인증이 필요로 될 수도 있음 가입 시 중복 방지를 위해:question:
- or 이메일 중복을 허용하고 SNS인증만으로, 해결하는 것으로 해도 될 듯 (이 경우 중복 처리에 대한 계획이 필요)
- Simple !
> 휴대폰번호와 이름 및 생일과 같은 정보는 일반회원 같은 경우에는 SNS인증을 통해서 가져올 수 있도록 함
> [Ref](https://naamezip.com/)에서 참조..
- 계정을 생성할 때 **속성을** 선택할 수 있다.
- [Ref](https://www.baconbox.co/)
- **속성 리스트**
> 속성 리스트에 대한 정확한 명시가 요구됨 :whale:
- 허리 건강도
- 에너자이저
- 보통
- 디스크
- 무릎 건강도
- 무에타이 니킥
- 보통
- 휠체어
- 수저 색
- 금수저
- 은수저
- 흙수저
- 학벌
- 중졸
- 고졸
- 대졸
- 이상형 보는 부위
- 얼굴
- 몸
- 지갑
- 음주
- 맥주
- 소주
- 와인
- 이동 수단
- 뚜벅이
- 자동차
- 스쿠터
- 자전거 등
- 사용자는 생성한 계정으로 **인증** 할 수 있다.
- 사용자는 **SNS** 계정으로 **인증** 할 수 있다.
- Kakao
- Naver
- *SNS 계정인증 api 구현 같은 경우에는 일반 회원가입 사용자 인증 구현 후에 이루어질 예정*
- 사용자는 계정을 **관리할** 수 있다.
- 사용자는 **bio를** 등록할 수 있다.
- 자기소개
- 프로파일 사진
- 사용자는 **비밀번호**를 변경할 수 있다.
- 이메일로 가입한 사용자는 **비밀번호 찾기** 기능을 이용할 수 있다.
- 이메일로 가입한 사용자의 경우 이메일 찾기 기능까지는 제공해주지 않고, 비밀번호 찾기 기능에 대해서만 제공
### :sailboat: 모듈
사용자가 모듈을 등록하고 신청하는 요구사항을 정의한다.
- 사용자는 모듈을 **등록할** 수 있다.
- 휴대폰 **인증을** 받은 사용자만 가능
- 모듈등록 시 **템플릿에** 맞게 작업을 진행한다.
- 템플릿 구조
- 타이틀
- 썸네일 이미지
- 간단한 설명
- 주소
- 구체적인 설명
- 메인 이미지
- 수용 인원
- 일정 (다중 선택가능)
- 날짜
- 시간
- 날짜를 선택하고 24시간 중 1시간 단위로 해서 모듈이 진행되는 시간을 선택가능
- ex) 2020-09-28 19시
- ex) 2020-09-28 19시, 20시, 21시
- ex) 2020-09-28 19시, 2020-09-29 19시
- 가격
- 모듈진행 시간 (시간 단위 선택 가능)
- ex) 1시간
- ex) 3시간
- 카테고리
- 숙박
- 식사
- 액티비티
- 해쉬태그 (다중 입력 가능)
- UI에 노출이 될 필수 내용을 적을 수 있다.
- **제목**
- 간단한 **설명**
- **썸네일** 사진
- ~~**상세** 내용을 등록할 수 있다.~~ (2차 스코프)
~~- 굵게, 기울임, 사진등록, 정렬 등 블로그 형식~~
- ~~관리자는 등록된 모듈에 대해 **승인을** 줄 수 있다.
~~- 승인된 모듈은 즉시 UI에 표출된다.~~
~~- 승인과정에서 필요한 내용을 관리자와 사용자가 **대화할** 수 있다.~~(2차 스코프)
~~- 대화가 생성될 때 **알림을** 줄 수 있다.~~ (2차 스코프)
- 모듈을 등록한 사용자는 모듈을 **수정할** 수 있다.
- 모듈 등록을 한 사용자에 한해 수정가능
- 컨펌을 다시 진행해 주어야 함
- 모듈을 등록한 사용자는 모듈을 **삭제할** 수 있다.
- 모듈 등록을 한 사용자에 한해 삭제가능
- 모든 사용자는 모듈을 **확인할** 수 있다.
- UI에 노출된 모듈제목, 간단한 설명, 썸네일 사진을 확인할 수 있다.
- **Searching**
- 해쉬태그 검색
- 해쉬태그 카운팅
- 제목 검색
- **Sorting**
- 카테고리
- 모듈의 상세내용을 확인할 수 있다.
- 모듈 탭
- 메인 페이지
- 인증된 사용자는 모듈을 **위시리스트에** 등록할 수 있다.
- 인증된 사용자는 모듈의 가능시간 단위로 위시리스트에 모듈을 등록할 수 있다.
- 위시리스트에 등록시 희망하는 **날짜와 시간**을 선택할 수 있다. (다중선택 가능)
- 디자인 컨셉
- (idea.1) 베지터 안경 컨셉
- 모듈의 스펙(?) 을 볼 수 있음
> 위시리스트, 히스토리, 농만이의 여정, 뱃지, 농만쓰 다 묶어서 마이페이지에 넣는 것이 깔끔해 보임
### :flag-my: 마이페이지
-------
### :dolphin: 농만이의 여정
사용자가 등록한 농만이의 여정 URL을 토대로 크롤링하여 정보를 표시
- 사용자는 농만이의 여정을 **등록할** 수 있다.
- 농만이의 여정 정보가 담긴 URL
- SNS URL
- **농만이의 여정**(사용자가 올린 SNS)를 확인할 수 있다.
- Ref: 베이컨 박스
### :hamburger: 위시리스트
위시리스트에서는 위시리스트에 추가한 모든 모듈을 보여준다.
- 위시리스트에 등록한 모듈을 **확인할** 수 있다.
- 날짜와 시간별로 모듈제목을 확인할 수 있다.
- 모듈제목을 선택하면 상세내용을 볼 수 있다.
- 위시리스트에 등록된 모듈을 **결제할** 수 있다.
- 위시리스트에 등록된 모듈에 대해 결제를 진행할 수 있다.
~~- 결제는 PG로 진행 된다. (Scope 3)~~
- 결제는 기업계좌로 진행 된다.
- 위시리스트에 등록된 모듈을 **취소할** 수 있다.
### :hibiscus: 히스토리 (결제된 모듈 시각화)
사용자가 여행을 다녀왔던 **히스토리를** 관리하는 요구사항
- 예약신청하여 다녀왔던 모듈을 확인할 수 있다.
### :de: 뱃지
사용자는 경험치에 따라 뱃지를 부여받을 수 있다.
- **허클베리핀**
- 회원가입을 완료
- **여행의 시작**
- 첫 예약 성공
- **짬타이거**
- 농장일을 10번 이상 예약
- **추노**
- 농장일 예약 후 3번이상 취소
### :bacon: 농만쓰
사용자는 계정을 생성한 사용자들을 확인할 수 있다.
- 농만이의 정보를 확인할 수 있다.
- 농만이의 **뱃지**
- 농만이의 **특성**
- 자기소개
## 레퍼런스
- [남의집](https://naamezip.com/)
- [카우치 서핑](https://www.couchsurfing.com/dashboard)
- [나이키런](https://www.nike.com/kr/ko_kr/c/running/nike-run-club)
- [베이컨박스](https://www.baconbox.co/)