miinsun
[Lehgo] 기능 정의 본문
- 요구사항 정의서
ID | 구분 | 서비스(메뉴) | 기능 | 상세기능 | |
1 | 1 | 사용자 | 회원가입 | 일반회원가입 | 이메일 회원가입 지원 |
SNS회원가입 | 네이버 회원가입 지원 | ||||
카카오 회원가입 지원 | |||||
구글 회원가입 지원 | |||||
개인정보 제공 동의 | 회원가입시 입력한 정보를 서비스에 활용하는 것에 대한 동의 | ||||
2 | 1 | 이메일 로그인 / 로그아웃 | |||
2 | SNS 로그인 | 네이버, 카카오, 구글 | |||
3 | 아이디 찾기 | 가입한 휴대폰 번호로 아이디 찾기 | |||
4 | 비밀번호 찾기 | 가입한 아이디와 휴대폰 번호로 비밀번호 찾기 | |||
3 | 1 | 개인취향 설문 | 문항 선택지 | 사용자 기초 데이터 수집을 위한 설문 제공 | |
2 | 설문 결과 유형 분류 | 선택지 기반에 따른 특정 여행자 유형 분류 | |||
4 | 1 | 메인페이지 | 종목 검색 | 종목 이름으로 해당 종목을 찾을 수 있음 | |
2 | 프로필 | 이름과 사진으로 표시, 사진은 선택사항 | |||
3 | 계정관리 | 회원정보, 프로필 사진, 관심종목을 수정할 수 있음 | |||
5 | 1 | 왼쪽 메뉴 바 | 마이페이지 | 회원 정보 확인 가능 | |
2 | 검색 | 장소 검색 | |||
6 | 1 | 마이페이지 | 사용자 검색 기록 | 사용자가 검색창에 검색했던 여행지 최신순으로 배치 | |
2 | 찜 목록 | 사용자가 원하는대로 폴더별 분류 가능 | |||
3 | 나만의 코스 | 사용자가 조직한 여행 코스 저장소 | |||
4 | 취향 설문 다시하기 | 가입 시 했던 설문조사 다시 진행 이때 사용자 score 초기화 | |||
5 | 정보 수정 | 비밀번호 입력으로 본인인증 후 회원 정보 수정 가능 | |||
6 | 회원 탈퇴 | 회원 정보 삭제 및 탈퇴 사유 선택 |
- 리퀘스트 흐름도
기능 | rest api url | method | data | response | |||
로그인 / 로그아웃
|
로그인/로그아웃 | O | /user | POST | id, password | ||
회원 관리
|
회원 가입
|
일반 회원 가입 | O | /users/new | POST | ||
SNS 회원 가입 | △ | 1. 구글 로그인 요청 /oauth/google 2. 카카오 로그인 요청 /oauth/kakao 3. 네이버 로그인 요청 /oauth/naver |
HttpStatus.ok | ||||
정보 입력 | 개인 취향 설문 | O | /users/type?type={type} | POST | User:user | userkeyword | |
정보 찾기
|
아이디 찾기 | O | users/findid/{email} | GET | String: id | ||
비밀번호 찾기 | O | /users/findpw?id={id}&email={email} | GET | User | |||
비밀번호 재설정 | O | /users/resetpw?pw={pw} | PUT | User:user | HttpStatus.OK | ||
정보 관리
|
정보 보기 | O | /users/{id} | GET | |||
정보 수정 | O | /users?id={id} | POST | ||||
유저 키워드 | 유저 설문조사 유무 | O | /user/keyword/isin?id={userId} | GET | Boolean | ||
회원 탈퇴 | 회원 탈퇴 | O | /users/{id} | DELETE | |||
여행지
|
여행지 정보
|
특정 여행지 정보
|
O | /place/search?id={id} | GET | List<Place> | |
O | /place/search/content?content={content} | GET | List<Place> | ||||
O | /place/search/category?category={category} | GET | List<Place> | ||||
여행지 검색
|
검색(서치) 결과 여행지 목록
|
O | /place/search/area?area={area} | GET | List<Place> | ||
O | /place/search/content?content={content} | GET | List<Place> | ||||
이름으로 검색 | O | /place/search/name?name={name} | GET | List<Place> | |||
내용, 지역명, 이름으로 검색 | O | /place/search/all?query={query} | GET | List<Place> | |||
다른 페이지 검색 (인스타 등) | O | /open/naver/blog?query={query} | GET | JSON | |||
네이버 API 활용
|
네이버 이미지 API | O | /open/naver/image?query={query} | GET | JSON | ||
네이버 맵스 API | O | /open/naver/map?query={query} | GET | JSON | |||
사용자-여행지
|
사용자 추천 여행지 목록 | ▲ | /ai | POST | User:user |
PlaceKeyword List 리턴
|
|
사용자 선호 여행지 등록 | O | /place/mylist/like?id={placeid} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
사용자 선호 여행지 목록 | O | /place/mylist/ | POST | User:user | List<UserLikePlace> | ||
사용자 선호 여행지 삭제 | O | /place/mylist/delete?id={placeid} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
사용자가 본 여행지 목록 반환 | O | /place/visited | POST | User:user | List<UserSearchPlace> | ||
사용자가 본 여행지 저장 | O | /place/visited/add?id={Placeid} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
사용자가 본 여행지 삭제 | O | /place/visited/delete?id={placeId} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
사용자 개인 여행지 추가 | O | /place/new?id={userId} | POST | Place:place | Place | ||
폴더
|
폴더 리스트 리턴 | O | /folder/list?user={userId} | GET | List<Folder> | ||
폴더 리턴 | O | /folder?id={folderId} | GET | Folder:folder | |||
폴더 생성 | O | /folder/new?name={name} | POST | User:user | Folder:folder | ||
폴더 수정 | O | /folder/update?id={folderId}&name={newName} | PUT | Usre:user | Folder:folder | ||
폴더 삭제 | O | /folder/delete?id={folderId} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
폴더에 장소 등록 | O | /folder/place/new?place={placeId}&folder={folderId} | GET | FolderPlace | |||
폴더에 장소 삭제 | O | /folder/place/delete?place={placeId}&folder={folderId} | GET | HttpStatus: OK, HttpStatus: conflict | |||
폴더 내 장소목록 | O | /folder/place/list?folder={folderId} | GET | List<FolderPlace> | |||
폴더에 있는 장소 유무 | O | /folder/isin?id={userId}&pid={placeId} | GET | Boolean, 있으면 True, 없으면 False | |||
코스
|
코스
|
유저가 갖고 있는 코스 | O | /course/list?user={userid} | GET | List<Course> | |
코스 정보
|
O | /course?cid={courseId} | GET | Course | |||
O | /course/my?id={userid}&cid={courseId} | GET | Course | ||||
볼 수 있는 코스 List | O | /course | GET | List<Course> | |||
코스내 place 목록 | O | /course/detail?cid={courseId} | GET | List<CoursePlace> | |||
코스 저장 | O | /course/new?name={courseName} | POST | User:user | HttpStatus: OK, HttpStatus: conflict | ||
코스내 place 추가 | O | /course/detail/new?cid={courseId}&pid={placeId}&priority={priority} | GET | CoursePlace | |||
코스 수정 | O | /course/update | PUT | Course:course | HttpStatus: OK, HttpStatus: conflict | ||
코스내 내용 수정(우선순위) | O | /course/detail/update | PUT | CoursePlace | |||
코스 삭제 | O | /course/delete?cid={courseId} | DELETE | HttpStatus: OK, HttpStatus: conflict | |||
코스 내 place 삭제 | O | /course/detail/delete?cid={courseId}&pid={placeId} | DELETE | HttpStatus: OK, HttpStatus: conflict | |||
코스 좋아요 List | O | /course/like?id=user | GET | List<UserLikeCourse> | |||
코스 좋아요 추가 | O | /course/like?cid={courseId} | POST | User:user | UserlikeCourse | ||
코스 좋아요 삭제 | O | /course/like?cid={courseId} | DELETE | User:user | HttpStatus: OK, HttpStatus: conflict | ||
관리자
|
회원 관리
|
가입 회원 목록 | O | /admin | POST | User:user (관리자) | List<User> |
'Project > 2022 Lehgo' 카테고리의 다른 글
[Lehgo] AWS EC2 Spring Boot 서버 실행하는 방법 Maven (0) | 2022.04.05 |
---|---|
[Lehgo] SpringBoot Api-key 숨기는 방법, Properties Maven (0) | 2022.04.05 |
[Lehgo] Spring boot : OAuth SNS Login, sns 회원가입 로그인 (0) | 2022.04.05 |
[Lehgo] 프로젝트 시연 영상 (0) | 2022.04.05 |
[Lehgo] 프로젝트 소개 (0) | 2022.04.05 |
Comments