읽고는 싶지만 무엇을 읽어야 할 지 모르겠다면!
"이제 저희가 추천해드릴게요."
빅데이터로 추천받는 맞춤 도서로 코로나 피해 집콕하며 함께 교양 쌓아요
도서 추천 서비스, <Book_U_Love> 개봉 박두!
- BOOK_U_LOVE 서비스는 유저 데이터를 기반으로 하여 협업필터링(Collaborative Filtering)을 이용해 유저별 맞춤 도서를 추천해주는 서비스입니다.
- 선호 성향이 비슷한 사용자들을 같은 그룹화, 동일 그룹 선호 상품 추천하는 방식입니다.
📍 Frontend : Vue.js
📍 Backend : Django
📍 Database : MySQL
📍 Development Enviornment : Python 3.7.4, Django 2.2.7, Node.js higher than 10.16x, Vue CLI higher than 4.2.x
📍 Using Editor : Visual Studio Code
- 백엔드 모델링
- User, Book, Author, Category, Review 모델링
- Category는 대분류, 중분류, 소분류로 구분하여 모델링
- 각 카테고리별로 책 목록을 불러올 수 있도록 함
- 선호하는 책 목록에 추가할 수 있도록 함
- 소분류가 없는 책의 경우 중분류로 추가할 수 있도록 함
- 유저 관련 기능 구현
- 회원가입, 로그인, 비밀번호 찾기 기능
- 댓글 CRUD 구현
- 댓글 읽기, 작성, 수정, 삭제가 가능하도록 함
- 스포일러 기능 추가하여 편의성을 높임
- 댓글 읽기, 작성, 수정, 삭제가 가능하도록 함
- 데이터 수집
- 인터파크 도서 API + 인터파크 도서 페이지 크롤링
- 13000여권의 책 데이터
- JSON 파일로 저장해두어 데이터를 불러오기 용이하도록 함
- 데이터 분석
- 최근 리뷰(1주일 이내) 필터링 및 리뷰 개수 순서로 정렬
- 카테고리 구분하여 책 데이터 전송
- 리뷰 개수순으로 데이터를 정렬하여 전송
✔️ Backend Installation & Run
cd backend
pip install -r requirements
python manage.py makemigrations
python manage.py migrate
python manage.py loaddata api/dummy.json
python manage.py runserver
✔️ Frontend Installation & Run
cd frontend
npm install
npm run serve
- http://i02b205.p.ssafy.io/ 주소를 접속해서 볼 수 있습니다.
- 비로그인 상태
- Youtube 썸네일 클릭 시 카드를 띄워 바로 이용할 수 있도록 하였습니다.
- 평점기준 TOP10 도서 목록 표시
- 평점이 높은 도서 목록을 보여주어 사용자의 도서 선택을 도움
- 도서추천관련 Youtube 썸네일
- 도서관련 동영상 컨텐츠의 접근성을 높임
- 검색기능
- 책 제목을 기준으로 제목에 포함된 단어를 검색할 시 해당되는 책 목록 표시
- 카테고리 분류
- 사용자가 카테고리별로 책을 찾아볼 수 있도록 대분류, 중분류, 소분류로 카테고리를 나누어 책 검색이 용이하도록 함
- 로그인 상태
- 관심 카테고리를 설정하고 작성한 리뷰 데이터를 기반으로 도서를 추천받은 경우입니다.
- 사용자 리뷰 기반 추천
- 사용자가 남긴 리뷰를 기반으로 사용자가 선호할만한 카테고리의 책을 추천
- 사용자가 남긴 리뷰가 10개 이상일 경우 기능이 보여지도록 함
- 사용자의 리뷰를 기반으로 추천하는 서비스
- 서비스 용도에 맞게 리뷰 데이터를 많이 수집하여 추천 정확도를 높이기 위함
- 사용자가 남긴 리뷰를 기반으로 개인 맞춤형 책 추천이 가능하도록 함
- 리뷰 작성 유도
- 기준개수(10개)를 남기지 않았을 때 알림을 띄워 사용자가 리뷰를 남기도록 유도
- 평점 기준, 리뷰개수 기준 TOP20의 도서 목록 제공
- 사용자가 읽어봤을 도서를 제공하여 리뷰 작성을 유도
- 읽은 것 같지만 잘 기억이 나지 않는 유저를 위해 줄거리 정보 제공
- 아직 읽지않은 책은 넘어갈 수 있도록 함
- 기본적인 댓글 CRUD 구현
- 댓글 작성, 수정, 삭제 기능 + 평점 남기기
- 내가 남긴 리뷰가 최상단에 위치하도록 함
- 댓글 확인 및 수정이 용이하도록 함
- 찜 목록 추가 기능
- 찜 목록 추가 시, 마이페이지에서 찜해둔 책 목록 모아보는 기능
- 스포일러 체크 기능
- 스포일러가 포함된 댓글이라 생각되면 다른 사용자가 읽을지 여부를 판단할 수 있도록 함
- 댓글 좋아요 기능
- 좋은 댓글이라고 생각되는 댓글을 많이 남기면 점수를 부여하여 사용자 랭킹에 사용
- 평점 분포도 그래프
- 사용자가 책에 대한 판단을 잘 할 수 있도록 도움(시각적 효과)
- 유사한 도서 추천
- 같은 장르의 리뷰 개수와 평점이 높은 도서 목록을 추천하여 사용자가 좋아할만한 도서 목록을 한번 더 보여줌
- 작가 기본 정보 제공
- 작가의 출간작 제공
- 유저의 선호 카테고리 분석
- 유저가 도서에 남긴 리뷰를 기반으로 선호 카테고리를 분석하여 그래프로 보여줌
- 선호 카테고리에 맞춰 사용자가 선호할만한 도서 추천
- 도서 상세 페이지에서 읽고 싶은 책에
찜하기
버튼을 클릭해서내가 읽고 싶은 책
리스트를 볼 수 있습니다. - 그리고 각 도서에 리뷰를 작성하면 리뷰를 작성한 도서들을 볼 수 있습니다.
- 계정 정보를 수정할 수 있는 페이지
- 유저 개인정보 수정, 탈퇴 기능
- 관심 카테고리 추가, 수정
- 메인페이지에서 관심 카테고리에 따른 추천이 가능하도록 함
- 관리자 권한이 있는 계정만 접근할 수 있는 페이지
- 가입 유저 관리 페이지
- 도서별 평균 평점, 리뷰 개수를 기반으로 분석이 가능하도록 함
- 빅데이터를 기반으로 분석된 결과를 볼 수 있는 페이지
- 리뷰 작성일 기준 1주일 이내에 작성된 리뷰가 많은 순서로 도서를 제공
- 최근 인기있는 도서를 파악할 수 있도록 함
- 연령대, 성별을 기준으로 최근에 많은 리뷰를 남긴 책 목록을 제공
- 연령대, 성별을 기준으로 리뷰 개수 분포를 확인하기 용이하도록 그래프로 보여줌
- 각 카테고리별 리뷰 분포를 그래프로 보여줌
- 어떤 카테고리에 유저들의 관심이 높은지 한눈에 파악하기 쉽도록 함