Skip to content

Namgyu11/MovieMate

Repository files navigation

📽️영화 커뮤니티 - MovieMate

영화에 대한 정보를 검색할 수 있고, 사용자들과 소통할 수 있는 커뮤니티 서비스

🛠️Tech Stack

java spring mariaDB

git Redis amazons3

ERD

erd

프로그램 기능 및 설계

회원관리

  • 회원가입 기능
    • 사용자는 회원가입할 수 있다.
    • 이메일, 닉네임, 비밀번호, 전화번호를 입력 받으며, 이메일은 중복이 불가하다.
    • 회원가입한 모든 사용자는 user 권한을 갖는다.
      • 관리자 권한은 별도의 회원가입을 하지 않는다.
  • 로그인 기능
    • 사용자는 로그인 할 수 있다.
    • 로그인 시 회원가입때 저장한 이메일, 비밀번호가 일치 해야한다.
    • 로그인 성공 시에 JWT 토큰을 발급한다.
    • Redis에 토큰을 저장한다.
  • 로그아웃 기능
    • redis에서 토큰을 조회한 후 토큰이 존재한다면, 토큰을 삭제한다.
  • 회원정보 조회
    • 사용자는 본인 회원 정보를 조회할 수 있다.
      • 이메일, 닉네임, 전화번호를 조회할 수 있다.
  • 회원정보 수정
    • 사용자는 본인 회원 정보를 수정할 수 있다.
      • 비밀번호, 전회번호, 닉네임을 수정할 수 있다.

커뮤니티

  • 게시물 작성 기능
    • 로그인한 사용자는 게시물을 작성할 수 있다.
    • 제목, 내용(텍스트), 사진을 형식으로 작성할 수 있다.
    • 사진 파일은 Amazon S3에 저장 및 관리를 한다.
  • 게시물 목록 조회 기능
    • 로그인 여부와 상관없이 게시물 목록을 조회할 수 있다.
    • 게시물은 paging 처리하여 보여진다.
  • 특정 게시물 조회 기능(검색)
    • 로그인 여부와 상관없이 게시물을 조회할 수있다.
    • 제목 또는 내용을 검색하여 특정 게시물을 조회할 수 있다.
      • 제목, 내용, 작성자, 작성일, 좋아요 갯수가 조회된다.
      • 조회수는 redis와 scheduling을 활용하여 같은 게시물에 대한 조회는 카운팅 되지 않는다.
        • 세션이 만료되면 조회수는 증가한다.
  • 게시물 좋아요 기능
    • 로그인한 사용자는 게시물에 좋아요를 누를 수 있다.
    • 좋아요를 중복으로 누르는 것은 불가하다.
  • 게시물 카테고리 생성 기능
    • 일반 회원이 아닌 관리자(Admin)가 게시물 카테고리를 생성할 수 있다.
  • 게시물 카테고리 변경 기능
    • 일반 회원이 아닌 관리자(Admin)가 게시물 카테고리를 변경할 수 있다.
  • 게시물 카테고리 조회 기능
    • 로그인 여부와 상관없이 게시물 카테고리를 조회할 수 있다.
    • 카테고리와 연관된 게시물을 조회할 수 있다.
      • 카테고리, 게시물 제목이 조회된다.
  • 댓글 작성 기능
    • 로그인한 사용자는 특정 게시물에 댓글을 작성할 수 있다. 작성한 댓글은 다른 사용자들이 볼 수 있다.
  • 댓글 수정 기능
    • 로그인한 사용자는 게시물에 작성한 댓글을 수정할 수 있다. 수정된 댓글은 다른 사용자들이 볼 수 있다.
  • 댓글 삭제 기능
    • 로그인한 사용자는 게시물에 작성한 댓글을 삭제할 수 있다. 삭제된 댓글은 다른 사용자들이 볼 수 없다.
  • 댓글 목록 조회 기능
    • 로그인 여부와 상관없이사용자는 특정 게시물에 남겨진 모든 댓글을 조회할 수 있다.
    • 최신 댓글이 상단에 위치하도록 정렬된다.
  • 댓글 좋아요 기능
    • 로그인한 사용자는 특정 댓글에 좋아요를 남길 수 있다.
    • 좋아요를 중복으로 누르는 것은 불가하다.

영화 정보

  • 영화 데이터 조회
  • 영화 데이터 검색 기능
    • 로그인 여부와 상관없이 영화 데이터 검색이 가능하다.
    • 영화 검색
      • 장르, 영화 제목, 이름(배우, 감독)을 검색하여 특정 데이터를 조회할 수 있다.
      • Elastic Search를 활용하여 포함된 키워드로 영화 데이터 검색이 가능하다.
      • 장르, 영화 제목, 배우 이름, 감독 이름이 조회된다.
      • scheduling을 활용하여 주기적으로 Redis에 캐싱하고 업데이트할 수 있다.
    • 박스오피스 조회
      • 로그인 여부와 상관없이 주간/주말 박스오피스를 조회할 수 있다.
      • paging 처리하여 조회할 수 있다.
  • 영화 찜(북마크) 등록, 등록 해제 기능
    • 로그인한 사용자는 특정 영화를 찜(북마크)로 등록하거나 해제할 수 있다.
  • 영화 찜(북마크) 목록 조회
    • 로그인한 사용자는 자신이 찜(북마크)로 등록한 영화의 목록을 조회할 수 있다.
      • 영화 제목을 조회한다.

About

영화 커뮤니티 - MovieMate

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages