Skip to content

CSID-DGU/2024-2-OSSProj-likemovie-02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

51 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ReelVision

  • ๋กœ๊ณ  ํด๋ฆญ์‹œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค


1. Project Overview (ํ”„๋กœ์ ํŠธ ๊ฐœ์š”)

  • ํ”„๋กœ์ ํŠธ ์ด๋ฆ„: ReelVision
  • ํ”„๋กœ์ ํŠธ ์„ค๋ช…: ์—ฐ๊ทน์˜ํ™”๊ณผ ์กธ์—…์ž‘ํ’ˆ ํ™๋ณด/ํ›„์› ํ”Œ๋žซํผ


1.1 ๊ฐœ๋ฐœ๋™๊ธฐ ๋ฐ ๊ธฐ๋Œ€ํšจ๊ณผ

  • ์กธ์—…์ž‘ํ’ˆ์„ ์„ ๋ณด์ผ ํ”Œ๋žซํผ ๋ถ€์กฑ ํ˜„์žฌ ์กธ์—… ์ž‘ํ’ˆ์€ ์˜ํ™”์ œ ํ˜น์€ ์งง์€ ์‹œ๊ฐ„ ์˜ํ™”๊ด€์„ ๋Œ€์—ฌํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์™ธ๋ถ€์— ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์ œํ•œ๋˜์–ด์žˆ๋‹ค. ์˜ค๋žœ ์‹œ๊ฐ„ ๊ณต๋“ค์—ฌ ์™„์„ฑํ•œ ์ž‘ํ’ˆ์ด ์กฐ๊ธˆ ๋” ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ๊ณต๊ฐœ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์˜ํ™”๊ณผ ํ•™์ƒ๋“ค์˜ ์ฐฝ์ž‘์˜์ง€๊ฐ€ ๋”์šฑ ์ปค์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

  • ์˜ํ™”๊ณผ ์กธ์—… ํ•™์ƒ๋“ค์„ ํƒ€๊ฒŸ์œผ๋กœ ํ•œ ํ”Œ๋žซํผ์˜ ํ•„์š”์„ฑ ์กธ์—…์˜ํ™”๋Š” ๋Œ€๋ถ€๋ถ„ ์‚ฌ๋น„๋กœ ์ œ์ž‘๋น„์šฉ์„ ์ถฉ๋‹นํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” ํฌ๋ผ์šฐ๋“œ ํŽ€๋”ฉ ํ”Œ๋žซํผ์œผ๋กœ๋ถ€ํ„ฐ ํŽ€๋”ฉ์„ ๋ฐ›์•„์„œ ์ œ์ž‘๋˜๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง‰์ƒ ํŽ€๋”ฉ์€ ์ œ์ž‘๋น„์šฉ์˜ ๋งŽ์€ ๋น„์œจ์„ ์ฐจ์ง€ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค. ๋น„์šฉ์— ๋Œ€ํ•œ ๊ฐˆ์ฆ์ด ์กฐ๊ธˆ์ด๋‚˜๋งˆ ํ•ด์†Œ๊ฐ€ ๋œ๋‹ค๋ฉด ์กธ์—…์˜ํ™”์˜ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์•„์ง€๊ณ  ๊ทธ๊ฒƒ์ด ๊ณง ์กธ์—…์˜ํ™”์— ๋Œ€ํ•œ ๊ด€์‹ฌ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

<์„ ํ–‰์‚ฌ๋ก€์™€์˜ ๋น„๊ต>

์„ ํ–‰์‚ฌ๋ก€ ๋น„๊ต

2. Team Members (ํŒ€์› ๋ฐ ํŒ€ ์†Œ๊ฐœ)

  • ์˜คํ”ˆ์†Œ์Šค์†Œํ”„ํŠธ์›จ์–ดํ”„๋กœ์ ํŠธ 2์กฐ:

    • ๊ณ ์œค๊ฑด: BE
    • ์‹ ์˜ˆ์„ฑ: FE
    • ์ •๊ฐ€๊ฒฝ: BE
    • ํ—ˆ์žฌ์›: BE
    • ํ˜„๊ด‘์ˆ˜: BE

3. Key Features (์ฃผ์š” ๊ธฐ๋Šฅ)

  • ํšŒ์›๊ด€๋ฆฌ:

    • ํšŒ์›๊ฐ€์ž…: ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ์ค‘๋ณต ํ™•์ธ ๋“ฑ์˜ ์ ˆ์ฐจ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ
    • ๋กœ๊ทธ์ธ: ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋˜๋Š” ์„ธ์…˜ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•จ
    • ๋กœ๊ทธ์•„์›ƒ: ์‚ฌ์šฉ์ž ์„ธ์…˜์„ ์ข…๋ฃŒํ•จ

    OSSP_Group_2_LikeMovie_แ„Œแ…ฎแ†ผแ„€แ…กแ†ซ_แ„‡แ…กแ†ฏแ„‘แ…ญ_แ„Œแ…กแ„…แ…ญ (1)

  • ๋งˆ์ดํŽ˜์ด์ง€:

    • ํ”„๋กœํ•„ ํ™•์ธ ๋ฐ ์ˆ˜์ •: ํšŒ์›๊ฐ€์ž…์—์„œ ๋“ฑ๋กํ•œ user์˜ ์ •๋ณด ์ˆ˜์ •, ํ”„๋กœ์ ํŠธ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ์™€ ํ”„๋กœ์ ํŠธ์— ํ›„์›ํ•œ ๊ธˆ์•ก ํ™˜๋ถˆ
    • ์˜ํ™” ๋ชฉ๋ก ํ™•์ธ: user๊ฐ€ ๊ตฌ๋งคํ•œ ์˜ํ™”, ํ›„์›ํ•œ ์˜ํ™”, user๊ฐ€ ๋“ฑ๋กํ•œ ํ”„๋กœ์ ํŠธ ํ™•์ธ
  • ๊ฒฐ์ œ:

    • ํ›„์› ๊ฒฐ์ œ
    • ์ŠคํŠธ๋ฆฌ๋ฐ ๊ฒฐ์ œ
    • ๊ฒฐ์ œ ํŽ˜์ด์ง€ ๋ฆฌ๋””๋ ‰์…˜
  • ์˜ํ™” ๋“ฑ๋ก/์žฌ์ƒ:

    • ์˜ํ™”๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Œ

    OSSP_Group_2_LikeMovie_แ„Œแ…ฎแ†ผแ„€แ…กแ†ซ_แ„‡แ…กแ†ฏแ„‘แ…ญ_แ„Œแ…กแ„…แ…ญ (3) OSSP_Group_2_LikeMovie_แ„Œแ…ฎแ†ผแ„€แ…กแ†ซ_แ„‡แ…กแ†ฏแ„‘แ…ญ_แ„Œแ…กแ„…แ…ญ (6)

  • admin:

    • ํšŒ์› ์ •๋ณด ๋ฐ ํ”„๋กœ์ ํŠธ ์ •๋ณด ์ˆ˜์ •
  • ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด ERD:

OSSP_Group_2_LikeMovie_แ„Œแ…ฎแ†ผแ„€แ…กแ†ซ_แ„‡แ…กแ†ฏแ„‘แ…ญ_แ„Œแ…กแ„…แ…ญ

  • ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋‹ค์ด์–ด๊ทธ๋žจ:
แ„€แ…ฎแ„‰แ…ฅแ†ผแ„ƒแ…กแ„‹แ…ตแ„‹แ…ฅแ„€แ…ณแ„…แ…ขแ†ท
  • Use-case ๋‹ค์ด์–ด๊ทธ๋žจ:
use
  • ์‹œ์Šคํ…œ ๊ตฌ์กฐ:
แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท
  • ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ:
โ”œโ”€โ”€ common
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ admin.py
โ”‚ย ย  โ”œโ”€โ”€ apps.py
โ”‚ย ย  โ”œโ”€โ”€ authentication.py
โ”‚ย ย  โ”œโ”€โ”€ middleware.py
โ”‚ย ย  โ”œโ”€โ”€ migrations
โ”‚ย ย  โ”œโ”€โ”€ session_backend.py
โ”‚ย ย  โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”œโ”€โ”€ tests.py
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ views.py
โ”œโ”€โ”€ db.sqlite3
โ”œโ”€โ”€ funding
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ forms.py
โ”‚ย ย  โ”œโ”€โ”€ migrations
โ”‚ย ย  โ”œโ”€โ”€ models.py
โ”‚ย ย  โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ views.py
โ”œโ”€โ”€ get-pip.py
โ”œโ”€โ”€ main_page
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”œโ”€โ”€ admin.py
โ”‚ย ย  โ”œโ”€โ”€ apps.py
โ”‚ย ย  โ”œโ”€โ”€ migrations
โ”‚ย ย  โ”œโ”€โ”€ models.py
โ”‚ย ย  โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”œโ”€โ”€ tests.py
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ views.py
โ”œโ”€โ”€ manage.py
โ”œโ”€โ”€ mongodbconnect
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ __pycache__
โ”‚ย ย  โ”œโ”€โ”€ asgi.py
โ”‚ย ย  โ”œโ”€โ”€ settings.py
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ wsgi.py
โ”œโ”€โ”€ mypage
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ admin.py
โ”‚ย ย  โ”œโ”€โ”€ apps.py
โ”‚ย ย  โ”œโ”€โ”€ forms.py
โ”‚ย ย  โ”œโ”€โ”€ migrations
โ”‚ย ย  โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”œโ”€โ”€ tests.py
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ views.py
โ”œโ”€โ”€ payments
โ”‚ย ย  โ”œโ”€โ”€ __init__.py
โ”‚ย ย  โ”œโ”€โ”€ admin.py
โ”‚ย ย  โ”œโ”€โ”€ apps.py
โ”‚ย ย  โ”œโ”€โ”€ models.py
โ”‚ย ย  โ”œโ”€โ”€ templates
โ”‚ย ย  โ”œโ”€โ”€ tests.py
โ”‚ย ย  โ”œโ”€โ”€ urls.py
โ”‚ย ย  โ””โ”€โ”€ views.py
โ”œโ”€โ”€ static
โ”‚ย ย  โ”œโ”€โ”€ images
โ”‚ย ย  โ””โ”€โ”€ style.css
โ””โ”€โ”€ streaming
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ admin.py
    โ”œโ”€โ”€ apps.py
    โ”œโ”€โ”€ forms.py
    โ”œโ”€โ”€ migrations
    โ”œโ”€โ”€ models.py
    โ”œโ”€โ”€ serializers.py
    โ”œโ”€โ”€ static
    โ”œโ”€โ”€ templates
    โ”œโ”€โ”€ tests.py
    โ”œโ”€โ”€ urls.py
    โ””โ”€โ”€ views.py


4. ๋ฐฐํฌ(AWS)

1. EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  • ์ธ์Šคํ„ด์Šค ์ด๋ฆ„: ReelVision
  • ์ธ์Šคํ„ด์Šค ์œ ํ˜•: t2.micro
  • AMI: Ubuntu
  • ๋„คํŠธ์›Œํ‚น: ํผ๋ธ”๋ฆญ IP ํ™œ์„ฑํ™” (์™ธ๋ถ€ ์—ฐ๊ฒฐ ํ—ˆ์šฉ)
  • ๋ณด์•ˆ ๊ทธ๋ฃน ์„ค์ •:
    • ํฌํŠธ 22: SSH ์ ‘์† ํ—ˆ์šฉ
    • ํฌํŠธ 8000: Django ์ ‘์† ํ—ˆ์šฉ
    • ํฌํŠธ 27017: MongoDB ์ ‘๊ทผ ํ—ˆ์šฉ

2. EC2 ์ ‘์† ๋ฐ ํ™˜๊ฒฝ ์„ค์ •

  1. SSH๋ฅผ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค ์ ‘์†
  2. ๋กœ์ปฌ์—์„œ ์™„์„ฑํ•œ Django ํ”„๋กœ์ ํŠธ๋ฅผ EC2 ์„œ๋ฒ„๋กœ ์˜ฎ๊ธฐ๊ธฐ
  3. Docker ๋ฐ Docker Compose ์„ค์น˜
    • Docker์™€ docker-compose.yml ํŒŒ์ผ์„ ์ด์šฉํ•ด ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  4. ํ”„๋กœ์ ํŠธ ๋ฐ DB ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰
    • Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Django ํ”„๋กœ์ ํŠธ์™€ DB ์‹คํ–‰
  5. Django ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ DB์™€ ์—ฐ๊ฒฐ
    • EC2 ์„œ๋ฒ„์—์„œ Django ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  DB ์—ฐ๊ฒฐ ํ™•์ธ
  6. ํผ๋ธ”๋ฆญ IP๋ฅผ ์‚ฌ์šฉํ•œ ์™ธ๋ถ€ ์ ‘๊ทผ ํ—ˆ์šฉ
    • AWS EC2์˜ ํผ๋ธ”๋ฆญ IP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •


5. Technology Stack (๊ธฐ์ˆ  ์Šคํƒ)







6. API ๋ช…์„ธ์„œ

๊ธฐ๋Šฅ HTTP Method API ๊ฒฝ๋กœ ์„ค๋ช…
ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ
ํšŒ์›๊ฐ€์ž… POST /signup/ ์‹ ๊ทœ ์‚ฌ์šฉ์ž ํšŒ์›๊ฐ€์ž…
๋กœ๊ทธ์ธ POST /signin/ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ
๋™๊ตญ๋Œ€ ์ธ์ฆ ๋ฉ”์ผ ๋ฐœ์†ก ์š”์ฒญ POST /verify-email/<str:token>/ ์ด๋ฉ”์ผ ์ธ์ฆ ์š”์ฒญ
๋ฉ”์ผ ์ธ์ฆ ํ™•์ธ GET /verify-email/<str:token>/ ์ด๋ฉ”์ผ ์ธ์ฆ ํ™•์ธ
๋กœ๊ทธ์•„์›ƒ GET /logout/ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์•„์›ƒ
๋งˆ์ดํŽ˜์ด์ง€
ํ”„๋กœํ•„ ์กฐํšŒ GET /mypage/ ๋งˆ์ดํŽ˜์ด์ง€ ํ”„๋กœํ•„ ์ •๋ณด ์กฐํšŒ
ํ”„๋กœํ•„ ์ˆ˜์ • GET /update_profile/ ํ”„๋กœํ•„ ์ •๋ณด ์ˆ˜์ •
๋น„๋ฐ€๋ฒˆํ˜ธ ์ˆ˜์ • GET /change_password/ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
๋“ฑ๋กํ•œ ํ”„๋กœ์ ํŠธ ์กฐํšŒ GET /my_projects/ ๋‚ด๊ฐ€ ๋“ฑ๋กํ•œ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก
ํ›„์›ํ•œ ํ”„๋กœ์ ํŠธ ์กฐํšŒ GET /funded_movie/ ํ›„์›ํ•œ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก
๊ตฌ๋งคํ•œ ํ”„๋กœ์ ํŠธ ์กฐํšŒ GET /purchased_movie/ ๊ตฌ๋งคํ•œ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก
ํŽ€๋”ฉ
ํŽ€๋”ฉ ์˜ํ™” ์—…๋กœ๋“œ POST /funding/upload ํŽ€๋”ฉ ์˜ํ™” ์—…๋กœ๋“œ
ํŽ€๋”ฉ ์˜ํ™” ์ƒ์„ธ ์กฐํšŒ GET /funding/<str:movie_id>/ ํŠน์ • ํŽ€๋”ฉ ์˜ํ™” ์ƒ์„ธ ์กฐํšŒ
ํŽ€๋”ฉ ์˜ํ™” ๋ชฉ๋ก ์กฐํšŒ GET /funding/movie/list ํŽ€๋”ฉ ์˜ํ™” ๋ชฉ๋ก ์กฐํšŒ
์ด๋ฏธ์ง€ ์กฐํšŒ GET /funding/poster/<str:poster_id>/ ํฌ์Šคํ„ฐ ์ด๋ฏธ์ง€ ์กฐํšŒ
๊ฒฐ์ œ ์„ฑ๊ณต GET /funding/payment/success/ ๊ฒฐ์ œ ์„ฑ๊ณต ๋ฆฌ๋””๋ ‰์…˜
๊ฒฐ์ œ ์‹คํŒจ GET /funding/payment/fail ๊ฒฐ์ œ ์‹คํŒจ ๋ฆฌ๋””๋ ‰์…˜
๊ฒฐ์ œ ์—ฌ๋ถ€ ํ™•์ธ GET /funding/check_payment_status/ ๊ฒฐ์ œ ์ƒํƒœ ํ™•์ธ
์ŠคํŠธ๋ฆฌ๋ฐ
์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ์—…๋กœ๋“œ POST /streaming/upload ์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ์—…๋กœ๋“œ
์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ์ƒ์„ธ ์กฐํšŒ GET /streaming/<str:movie_id>/ ํŠน์ • ์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ์ƒ์„ธ ์กฐํšŒ
์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ๋ชฉ๋ก ์กฐํšŒ GET /streaming/movie/list ์ŠคํŠธ๋ฆฌ๋ฐ ์˜ํ™” ๋ชฉ๋ก ์กฐํšŒ


7. ๊ด€๋ จ ์ž๋ฃŒ



About

๐ŸŽž๏ธReelVision: Your Vision, Our Mission

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •