Skip to content

movieget/backend

Repository files navigation

영화 예매 플랫폼 MovieGet

🔗 시연영상

[MovieGet]

(https://youtu.be/u4rKml1W8B8?si=ehg0NeekxEHaKRS2)


프로젝트 기간

2024.10.10 - 2024.11.05


프로젝트 소개

MovieGet

Megabox, 롯데시네마, CGV를 바탕으로 실제 영화 예매 시스템과 밀접하게 서비스를 구현하였습니다.

📌 TMDB의 영화 상영 데이터를 가공하여 데이터를 생성하였고
📌 이를 통해 회원들이 실제와 같은 영화 예매를 경험할 수 있습니다.

메인 페이지-상영 영화 TOP10, 상영 예정 영화

예매 페이지-좌석 선택

결제 페이지-tosspay 연동


✅ 주요기능

1️⃣ TMDB -> 영화데이터

영화 포스터, 예고편, 출연진 정보 등 다양한 정보를 제공합니다.
Open API를 활용해서 공신력 있는 데이터를 수급하였습니다.

2️⃣ 예매

사용자가 날짜를 선택하면 영화, 지역, 영화관, 상영시간 정보를 제공합니다.
상영관 별 동적 좌석 데이터를 생성하여 상영관 별로 다른 좌석 데이터를 보유하고 있으며 실시간 좌석 선택이 가능합니다.
영화 상영 시간, 인원 수, 좌석 데이터 선택 후 예매 데이터를 생성합니다.

3️⃣ 결제

결제 전 포인트 적립 및 포인트를 사용해 결제할 수 있습니다.
결제 시스템으로 tosspay를 연동하였습니다.(사업자 등록 시에 다양한 테스트가 가능합니다.)

✅ 그 외 기능

1️⃣ 소셜로그인

사용자는 소셜로그인(카카오)을 통해 로그인을 할 수 있습니다.

2️⃣ 마이페이지

개인정보 수정이 가능합니다.
회원 본인의 예매 or 취소 내역을 당일/7일 이내/전체로 설정하여 볼 수 있습니다. 회원 본인의 포인트 이용 or 적립 내역을 당일/7일 이내/전체로 설정하여 볼 수 있습니다. 회원 본인의 리뷰 전체를 볼 수 있습니다. 찜한 영화 데이터 조회 및 예매페이지로 이동이 가능합니다. 회원 탈퇴시 회원의 정보가 데이터베이스에서 삭제됩니다.

3️⃣ 리뷰

영화를 예매한 회원의 경우 300자 이내의 Text와 사진을 첨부할 수 있습니다. 리뷰 작성 시 별점을 줄 수 있으며 이 별점은 평균 평점으로 작용됩니다. 리뷰 작성 시 30점의 포인트가 적립됩니다.

4️⃣ 포인트

영화 예매 시 100point, 리뷰 작성 시 20point가 적립됩니다. 예매 취소 or 리뷰 삭제 시 적립되었던 포인트가 삭제됩니다. 결제 시 적립되었던 포인트를 1000point부터 사용 가능합니다.

5️⃣ 별점

회원은 영화를 본 후 리뷰를 적을 때 1-5점 사이로 별점을 부여할 수 있습니다. 별점은 모든 페이지에 나오는 영화 데이터의 아래부분에 평균 별점으로 나타납니다.

6️⃣ 찜하기

회원/비회원 모두 맘에 드는 영화에 하트 모양을 눌러 찜하기를 할 수 있습니다. 찜하기는 간편 예매로 이동하기 위한 수단으로 마이페이지에서 찜한 영화들을 볼 수 있습니다.> 회원은 영화를 본 후 리뷰를 적을 때 1-5점 사이로 별점을 부여할 수 있습니다. 별점은 모든 페이지에 나오는 영화 데이터의 아래부분에 평균 별점으로 나타납니다.



1. 백엔드팀


skwwnl

hyo00000

Gseungjin2

woogin-an

raphaehell
김진원 김효영 강승진 안우진 정회인



2. 개발 환경

Backend

Deployment


Environment

Communication




3. 시작 가이드

설치 전 요구 사항

  • Python 3.12.3
  • fastapi 0.115.2
  • tortoise-orm 0.21.6
  • Poetry 1.8.3

설치

$ git clone https://github.com/movieget/backend.git
$ cd backend
$ poetry install

실행

$ poetry shell
$ cd src
$ fastapi dev main.py
$ [or] python main.py

4. ERD, 시스템 아키텍처 및 프로젝트 구조

ERD

MovieGet



시스템 아키텍처

MovieGet



프로젝트 구조

backend
├─ .dockerignore
├─ .git
├─ .github
│  └─ workflows
│     ├─ CD.yml 
│     └─ CI.yml
├─ .gitignore
├─ .gitmessage.txt
├─ Dockerfile
├─ infra
├─ poetry.lock
├─ pyproject.toml
├─ README.md
├─ scripts
├─ src
│  ├─ app
│  │  ├─ api
│  │  ├─ auth
│  │  └─ v1
│  │     ├─ alert
│  │     ├─ book
│  │     ├─ cinema
│  │     ├─ favorite
│  │     ├─ location
│  │     ├─ movie
│  │     ├─ payment
│  │     ├─ refund
│  │     ├─ review
│  │     ├─ screen
│  │     └─ user
│  ├─ common
│  ├─ core
│  └─ main.py
└─ terraform

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages