A6조 팀 프로젝트 S.A

2023. 5. 22. 17:20team/team project

AIA6 S.A (Starting Assignments)


팀 소개

  • 팀명: 벼락치기
  • 팀원: 이주한, 송지명, 최준영, 박진식, 이지훈
  • 프로젝트 소개: 장르와 평점을 기준으로 영화를 추천해주는 사이트 입니다.
  • 역할
    • 송지명 (TMDB크롤링 & DB에 저장 ⇒ 머신러닝[Super Main])
    • 박진식 (output중에서 한 개를 선택하게 될 경우 백 엔드 동작 ⇒ 머신러닝)
    • 최준영 (프론트 엔드 ⇒ 머신러닝)
    • 이지훈 (후기 CRUD, 좋아요 기능 ⇒ 머신러닝)
    • 이주한 (로그인 / 회원가입 / 마이페이지, TMDB크롤링 & DB에 저장 ⇒ 머신러닝[Sub])
  • 기능:
    • 로그인 / 회원가입
      • 회원가입(이메일 or 소셜은 추후 논의)
      • 로그인
      • 로그아웃
      • 마이페이지
    • 영화
      • 후기 CRUD (TextField 짧게 한줄평 느낌으로!)
      • 좋아요 기능
    • 영화 추천 과정
      • 관심있는 장르 or 영화 수집 페이지
      1. TMDB API 중 Trending 랜덤 10개 띄워주기 (영화 제목 / 포스터)
      2. 하나를 선택 = input, 근데 없으면?(다시 검색하기 - 또 스무개/위에서 띄운 10개는 제외)
      3. 3~5개의 output중에서 하나를 고르면(영화 제목 / 포스터)
      4. 해당 영화 줄거리 / 포스터 / 후기 + AI가 input과 장르가 유사하고 평점이 높은 영화 추천 3개 (영화 상세 페이지)
  • 추가기능(시간이 남으면 구현 도전!)
    1. 좌측 메뉴 바 슬라이드 인 / 슬라이드 아웃 기능
    2. 영화 추천 페이지 모달 기능
    3. 디자인 조금 더 다듬기
    4. 구글 소셜 로그인 기능

 

Wireframe


 

API 명세서

로그인 요청 POST /users/sign-in/ user_name :
사용자 ID

password:
사용자 Password
성공:
200 Ok

실패:
401 Unauthorized
POST : 토큰 형식으로 아이디와 패스워드를 입력 받고 로그인을 할 수 있게 합니다.
회원가입 POST /users/sign-up/ user_name :
사용자 ID

password:
사용자 Password

email:
사용자 email

re_password:
Password 확인
성공:
201 Created

실패:
400 Bad Request
POST : POST 요청을 처리하며, 새로운 사용자를 생성합니다.
사용자 정보 삭제 DELETE /users/mypage/
<int:user_id>/
user_id :
사용자 ID
성공:
204 No Content

실패:
400 Bad Request
DELETE : 사용자의 정보를 삭제합니다.
마이 페이지 GET /user/mypage/
<int:user_id>/
user_id :
사용자 ID
성공:
200 Ok

실패:
400 Bad Request
해당 유저의 정보와 해당 유저가 작성한 모든 후기를 불러옵니다.
후기 작성 POST /review/<str:title>/ content :
후기 내용

user_id :
사용자 ID

title :
영화 제목
성공:
201 created

실패:
400 bad request
해당 영화의 후기를 작성합니다.
후기 수정 PUT /review/<int:review_id>/ user_id :
사용자 ID

content :
후기수정 내용

review_id :
후기 ID
성공:
200 Ok

실패:
400 Bad Request
해당 유저가 작성한 후기를 수정합니다.
후기 삭제 DELETE /review/<int:review_id>/ user_id :
사용자 ID

review_id :
후기 ID
성공:
204 No Content

실패:
400 Bad Request
해당 유저가 작성한 후기를 삭제합니다.
좋아요 POST /review/<int:review_id>/like/ user_id :
사용자 ID

review_id :
후기 ID
성공:
200 Ok

실패:
400 Bad Request
해당 유저가 마음에 드는 후기에 좋아요를 남길 수 있습니다.
메인 페이지 GET /main/   성공:
200 Ok

실패:
400 Bad Request
모든 영화중 무작위로 10개를 출력합니다.
영화 추천 상세 페이지 GET /recommendation/<int:movie_id>/ movie_id :
영화ID
성공:
200 Ok

실패:
400 Bad Request
유저가 선택한 영화의 상세 정보와 추천 영화들을 출력합니다.

 

ERD


 

Team Convention

  • 식사 시간
    • 저녁시간: 6~7시
    • 점심시간: 12시~2시 사이
  • 회의 시간: 아침 9시, 점심 2시, 저녁 8시
  • 휴식 시간: 가능하면 시간당 10분씩은 쉬기로
  • 그 외 규칙
    • 좋은 의견이나 개선해야할 부분이 있다면 적극적으로 제안하기

 

Git Convention

  • Commit convention
    • gitmoji 활용 (다소 번거로울 수 있으나 gitmoji 사용이 Git 협업에 도움이 될 것으로 생각 됩니다. 참여 부탁 드립니다!)
  • Local repository branch 전략
    • 본인의 git 원격 저장소로 fork
    • ⇒ 본인 로컬 저장소로 clone
    • ⇒ 본인 로컬 저장소에서 작업 하기 전 항상 branch 생성하고 branch에서 작업
    • ⇒ branch에서 작업 끝나면 main branch로 merge
    • ⇒ 로컬에서 merge 완료되면 pull request 진행
  • Pull request convention
    • pull request는 될 수 있으면 동시에 여러 명이 아닌 한 번에 한 명씩 순서대로 진행할 것(이렇게 해야 결과물들이 계속 최신화되면서도 에러나 충돌을 막을 수 있을 것으로 예상)
    • pull request가 있다면 당시에 팀원들에게 전파 후 바로 pull 받아볼 수 있도록 조치하여팀원들의 local repository의 main branch와 원본 repository의 main branch의 버전이 항상 동일하도록 노력 할 것
    • 항상 본인의 Pull Request 전에 앞선 Pull Request가 있었는지 확인
    • 있다면 원본 repository의 main branch를 본인 local 환경의 main branch로 pull 받아 본인의 결과물과 합쳐본 후 에러 유무와 충돌 유무를 확인
    • 에러나 충돌이 있다면 해결 후 pull request 진행