(Notion) Django Project
👻 프로젝트 주제
- 영화 추천 시스템
- 사용자가 작성한 영화 리뷰를 토대로 영화 추천
👻 필수 구현 기술
- CRUD(Create, Read, Update, Delete)
- Django
- 추천 시스템
- (추가) AWS 배포
👻 필수 포함 사항
😇 필수 기능
Django
사용
- 회원 기능 포함 (django의
auth_user
와 UserModel
합쳐서 사용할 예정)
- 하나의 레포지토리에서
기능별 혹은 개인별
브랜치를 사용
CRUD
기능
- 장고의 모델에서
one-to-many
와 many-to-many
기능 사용
추천시스템
(협업필터링) 활용
😇 추가 기능
- 사람들에게 평점이 좋은 영화 보여주기
- 영화 찜하기 기능
- 마이페이지에서 프로필 수정 기능 / 작성한 글 목록 / 찜한 영화 목록 기능
- 리뷰 작성 페이지
- 영화 or 리뷰 검색 페이지
👻 MOCKUP 및 DB 작성
😇 MOCKUP
- 로그인 및 회원가입 페이지
- 메인 페이지
- 리뷰 포스팅 페이지
- 마이 페이지
😇 ERD 작성
- movie와 tag 테이블은
many-to-many
관계 표현
user {
"user_id(pk)" : "Primary Key",
"username" : "사용자 이름",
"password" : "비밀번호"
}
post {
"post_id(pk)" : "Primary Key",
"user_id(fk)" : "Foreign Key",
"movie_id(fk)" : "Foreign Key",
"comment" : "리뷰 내용",
"my_score" : "평점",
"time" : "작성 시간"
}
movie {
"movie_id(pk)" : "Primary Key",
"tag_id(fk)" : "Foreign Key",
"title" : "제목",
"image" : "포스터 이미지",
"score" : "평균 평점",
"desc" : "영화 개요"
}
tag {
"tag_id(pk)" : "Primary Key",
"movie_id(fk)" : "Foreign Key",
"tagname" : "장르 이름",
}
👻 컨벤션
😇 GitHub
Commit Type
- Feat : 새로운 기능 추가/수정/삭제
- Fix : 버그 수정
- Docs : 문서 수정
- Design : CSS 등 사용자 UI 디자인 변경
- Style: 코드에 영향을 주지 않는 변경사항 / 코드 포맷 변경, 새미 콜론 누락, 코드 수정이 없는 경우
- Refactor: 코드 리팩토링
- Test: 테스트 코드/기능 추가
- Rename : 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
- Remove : 파일을 삭제하는 작업만 수행한 경우
Subject
- 50자를 넘기지 않고, 커밋 타입을 준수함.
Body
- 72자를 넘기지 않고, 모든 커밋에 본문 내용을 작성할 필요는 없음.
👻 기능 명세서
😇 홈 페이지
- 학습된 머신러닝 모델을 통해 평점이 높은 순서대로 영화가 랜덤으로 보여집니다.
- 상단바의 [로고][홈] [마이페이지][로그인 or 로그아웃] click으로 해당 페이지로 이동합니다.
- 로그인(인증)상태에 따라 로그인과 로그아웃이 번갈아가며 보여집니다.
- 영화를 누르면 해당되는 영화의 상세 페이지로 이동합니다.
😇 영화 상세 페이지
- 상단
- 홈 페이지에서 누른 영화의 상세 내용[ 이미지 | 제목 | 장르 | 개요 ]을 보여줍니다.
- 중간
- 리뷰 작성하기 버튼으로 모달창을 띄워 평점을 등록합니다.
- 하단
- 학습된 머신러닝 모델을 이용하여 추천 영화들을 보여줍니다.
- 내가 작성한 리뷰에서 평점이 높은 영화들의 태그들을 모델에 적용시킵니다.
- 로그인(인증)상태가 되어있을 때에만 보여집니다.
미인증상태시, 추천영화는 랜덤으로 보여집니다.
😇 내 평점 등록 - 모달
- 평점을 등록할 영화의 제목이 보여지며, 평점은 range slider로 조절합니다.
- 로그인(인증)상태가 되어있을 때에만 보여집니다.
- 미인증상태시,
로그인이 필요한 작업입니다
에러메세지를 보여줍니다.
😇 회원가입/로그인 페이지
- 페이지 이름을 누르면 홈 페이지로 이동합니다.
- 아이디와 비밀번호를 입력해 회원가입 또는 로그인을 할 수 있습니다.
😇 마이 페이지
- 로그인(인증)상태가 되어있을 때에만 접근이 가능합니다.
- 로그인한 사용자가 작성한 영화 리뷰 리스트가 보여집니다.
- 영화 리뷰 리스트의 구성 요소는
영화 제목, 평점, 작성시간, 삭제 버튼
입니다.
- 페이지별 리스트을 보여주는 것이 아닌 스크롤 방식을 택해 사용자가 작성한 리스트를 보여줍니다.
- (추가) 리스트의 영화 제목을 누르면 상세 페이지로 이동합니다.
👻 API
👻 팀원들의 역할 및 약속
😇 팀원별 역할
😇 우리 팀의 약속
- 서로의 의견을 존중해 주기
- 프로젝트가 어렵고 힘들어도 웃기
- 현충일 및 휴일에도 프로젝트에 시간을 최대한 할애하기
- 함께 성장하며 서로가 서로의 멘토가 되어주기