발단
부트캠프에 참여하면서 배운 react를 복습하기 위해 개인 프로젝트를 시작한다.
기획
레시피yam!은 적은 재료로 쉽게 만드는 레시피를 공유하는 웹사이트이다.
기획에 참고한 사이트는 만개의 레시피(https://www.10000recipe.com/index.html) 사이트이다.
해당 레시피 사이트는 첫 화면에서 추천하는 레시피, 레시피의 분류, 인기있는 레시피 랭킹 등의 서비스를 제공한다.
특히 레시피 분류 메뉴에 주목했는데, 요리의 종류, 상황별, 재료별, 방법별 옵션을 선택하여 해당하는 레시피를 조회할 수 있다.
이는 요리의 목적을 생각하고 검색하는데 효율적이지만, 이미 있는 재료를 소진하기 위해 레시피를 검색하는데는 불편하다.
이를 바탕으로 태그 기능을 사용하여 이용자들이 자율적으로 자주 사용하는 메뉴를 태그에 추가하고, 검색할 수 있도록 기획하였다.
요구사항 정의
레시피yam! 에서 구현할 기능을 정리하였다.
필수 구현 요구 사항
1차 프로토타입을 완성하는데 충족해야 할 요구사항을 정리하였다.
레시피 관리
- 사용자는 레시피를 등록할 수 있다.
- 사용자는 자신이 등록한 레시피를 수정할 수 있다.
- 사용자는 자신이 등록한 레시피를 삭제할 수 있다.
- 사용자는 첫 화면에서 최신 레시피를 조회할 수 있다.
- 로그인한 사용자는 자신이 작성한 레시피를 조회할 수 있다.
태그 기능
- 사용자는 레시피를 등록할 때 요리에 필요한 재료를 태그할 수 있다.
- 사용자는 재료 태그 목록에서 태그를 클릭하면 해당 태그가 들어간 레시피 목록을 조회할 수 있다.
회원 관리
- 사용자는 이메일, 비밀번호, 닉네임을 입력하여 회원으로 가입한다.
- 로그인한 사용자는 자신의 닉네임, 비밀번호를 수정할 수 있다.
- 사용자는 OAuth 기능을 사용하여 구글 계정으로 가입할 수 있다.
- 사용자는 이메일, 비밀번호를 입력하여 로그인할 수 있다.
추가 구현 요구 사항
필수 구현 요구 사항을 구현하고 여유가 있다면 추가로 구현할 요구사항을 정리하였다.
좋아요 관리
- 로그인한 사용자는 레시피에 좋아요를 등록할 수 있다.
- 로그인한 사용자는 자신이 좋아요를 누른 레시피를 조회할 수 있다.
- 로그인한 사용자는 자신이 좋아요를 누른 레시피에서 좋아요를 취소할 수 있다.
- 레시피 본문 하단에 이 레시피가 받은 좋아요 수를 확인할 수 있다.
- 사용자는 재료 태그 목록에서 태그를 클릭하면 해당 태그가 들어간 레시피 목록을 좋아요 순으로 조회할 수 있다.