- Introduction
- Demo
- API
- System Architecture
- ERD
- Tech Stack
- Monitoring
- How to start
- Directory Structure
- Team Members
🖥️ MVStudio (배포 중단)
- 사용자가 선택한 다양한 옵션에 따라 맞춤형 뮤직비디오를 생성
- AI 기술을 활용하여 높은 퀄리티의 뮤직비디오를 신속하게 제작
- 장르, 악기, 주제, 분위기를 자유롭게 지정 가능
- 사용자 채널 관리 및 차트 기반 분석 제공
- 완성된 뮤직비디오를 소셜 미디어에 쉽게 공유
- 제작한 뮤직비디오를 개인 프로젝트에 활용 가능
MVStudio의 간략한 설명을 담고 있습니다.
구글 소셜 로그인 및 회원가입을 통해 손쉽게 로그인하실 수 있습니다.
다른 사람들의 뮤직비디오를 시청할 수 있습니다.
최신순, 조회수순, 급상승, 자신의 국가와 나이대별 인기순으로 목록 조회 할 수 있습니다.
검색 기능을 통해 원하는 뮤직비디오를 쉽게 찾을 수 있습니다.
사용자는 장르, 악기, 영상 스타일, 제목, 보컬, 언어, 템포를 직접 설정하여 뮤직비디오를 생성할 수 있습니다.
선택한 설정을 바탕으로 제공되는 세 개의 가사 중 원하는 가사를 선택하면 해당 가사로 뮤직비디오가 생성됩니다.
뮤직비디오를 클릭하면 재생 페이지로 이동하여 시청할 수 있습니다.
이 페이지에서 총 조회수, 만든 사람, 가사를 확인할 수 있으며 시청 도중 나중에 다시 와도 이전에 보던 부분부터 계속 시청할 수 있습니다.
사용자는 마이페이지에서 자신이 만든 뮤직비디오와 최근에 시청한 뮤직비디오를 확인할 수 있습니다.
인스타그램과 유튜브 버튼을 통해 자신의 인스타그램과 유튜브 계정으로 바로 이동할 수 있습니다.
사용자는 자신이 만든 뮤직비디오의 시청 추이를 날짜별 조회수, 성별, 국가별, 연령대별 차트로 분석할 수 있습니다.
사용자는 자신의 뮤직비디오를 유튜브에 업로드할 수 있습니다.
뮤직비디오 제작에 필요한 크레딧은 카카오페이를 통해 결제할 수 있습니다.
https://github.com/2024-Techeer-Summer-Bootcamp-Team-D/MVStudio-Docker.git
- .env
ELASTIC_VERSION=
ELASTIC_PASSWORD=
LOGSTASH_INTERNAL_PASSWORD=
KIBANA_SYSTEM_PASSWORD=
METRICBEAT_INTERNAL_PASSWORD=
FILEBEAT_INTERNAL_PASSWORD=
HEARTBEAT_INTERNAL_PASSWORD=
MONITORING_INTERNAL_PASSWORD=
BEATS_SYSTEM_PASSWORD=
INIT_INDEX=
- MVStudio-Frontend/.env
# 개발 서버 주소
VITE_REACT_APP_BASE_URL =
# 뮤직 비디오 생성 가능 여부
VITE_REACT_APP_IS_OPERATE = true
- MVStudio-Backend/.env
SECRET_KEY=
DEBUG=
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=
MYSQL_USER=
MYSQL_PASSWORD=
DATABASE_HOST=
DB_SQL_MODE=
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_STORAGE_BUCKET_NAME=
AWS_S3_REGION_NAME=
OPENAI_API_KEY=
SUNO_API_KEY=
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=
RUNWAYML_API_KEY=
BASE_BACKEND_URL=
BASE_FRONTEND_URL=
REFRESH_TOKEN_SECRET=
KAKAO_APP_ADMIN_KEY=
CID=
cd MVStudio-Frontend && npm install && npm run build && cd .. && docker-compose -f docker-compose.prod.yml -f docker-compose.monitoring.yml up -d --build
MVStudio-Docker
📦MVStudio-Docker
┣ 📂.github
┣ 📂.idea
┣ 📂alertmanager
┣ 📂certbot
┣ 📂elk
┣ 📂grafana
┃ ┗ 📂data
┣ 📂nginx
┃ ┣ 📂app
┃ ┣ 📂logs
┃ ┣ 📜Dockerfile
┃ ┗ 📜nginx.conf
┣ 📂prometheus
┃ ┣ 📜alert-rules.yml
┃ ┗ 📜prometheus.yml
┣ 📂rds_exporter
┃ ┣ 📂basic
┃ ┣ 📂client
┃ ┣ 📂config
┃ ┣ 📂enhanced
┃ ┣ 📂sessions
┃ ┣ 📂tools
┃ ┣ 📜.gitignore
┃ ┣ 📜.golangci-required.yml
┃ ┣ 📜.golangci.yml
┃ ┣ 📜.goreleaser.yml
┃ ┣ 📜CHANGELOG.md
┃ ┣ 📜Dockerfile
┃ ┣ 📜Dockerfile.releaser
┃ ┣ 📜LICENSE
┃ ┣ 📜Makefile
┃ ┣ 📜VERSION
┃ ┣ 📜config.tests.yml
┃ ┣ 📜go.mod
┃ ┣ 📜go.sum
┃ ┗ 📜main.go
┣ 📜.DS_Store
┣ 📜.env
┣ 📜.gitignore
┣ 📜.gitmessage.txt
┣ 📜.gitmodules
┣ 📜README.md
┣ 📜docker-compose-dev.yml
┣ 📜docker-compose-prod.yml
┣ 📜docker-compose.elk.yml
┣ 📜docker-compose.monitoring.yml
┣ 📜docker-compose.prod.yml
┗ 📜init-letsencrypt.sh
MVStudio-Frontend
📦MVStudio-Frontend
┣ 📂.github
┣ 📂.idea
┣ 📂dist
┣ 📂node_modules
┣ 📂src
┃ ┣ 📂api
┃ ┃ ┣ 📜axios.config.js
┃ ┃ ┣ 📜charts.js
┃ ┃ ┣ 📜member.js
┃ ┃ ┣ 📜musicVideos.js
┃ ┃ ┣ 📜onboarding.js
┃ ┃ ┣ 📜play.js
┃ ┃ ┗ 📜search.js
┃ ┣ 📂assets
┃ ┃ ┣ 📂font
┃ ┃ ┃ ┗ 📜SUIT-Variable.ttf
┃ ┃ ┗ 📜image.js
┃ ┣ 📂components
┃ ┃ ┣ 📂search
┃ ┃ ┃ ┗ 📜LongCover.jsx
┃ ┃ ┣ 📜BasicTaps.jsx
┃ ┃ ┣ 📜GenreSwiper.jsx
┃ ┃ ┣ 📜InstSwiper.jsx
┃ ┃ ┣ 📜Navbar.jsx
┃ ┃ ┣ 📜Service.jsx
┃ ┃ ┣ 📜Sidebar.jsx
┃ ┃ ┗ 📜StyleSwiper.jsx
┃ ┣ 📂libs
┃ ┃ ┗ 📂stores
┃ ┃ ┃ ┗ 📜userStore.js
┃ ┣ 📂pages
┃ ┃ ┣ 📂auth
┃ ┃ ┃ ┣ 📜Auth.jsx
┃ ┃ ┃ ┣ 📜Register.jsx
┃ ┃ ┃ ┗ 📜SaveTokens.jsx
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📜Header.jsx
┃ ┃ ┃ ┣ 📜Main.jsx
┃ ┃ ┃ ┗ 📜VideoItem.jsx
┃ ┃ ┣ 📂play
┃ ┃ ┃ ┣ 📜Play.jsx
┃ ┃ ┃ ┗ 📜VideoPlayer.jsx
┃ ┃ ┣ 📂user
┃ ┃ ┃ ┣ 📜EditProfile.jsx
┃ ┃ ┃ ┣ 📜Mypage.jsx
┃ ┃ ┃ ┗ 📜YtChannelRegister.jsx
┃ ┃ ┣ 📜AppRouter.jsx
┃ ┃ ┣ 📜Create.jsx
┃ ┃ ┣ 📜LyricsSelect.jsx
┃ ┃ ┣ 📜OnBoardingPage.jsx
┃ ┃ ┣ 📜Pay.jsx
┃ ┃ ┣ 📜Search.jsx
┃ ┃ ┣ 📜Upload.jsx
┃ ┃ ┣ 📜User.jsx
┃ ┃ ┗ 📜ViewChart.jsx
┃ ┣ 📂styles
┃ ┃ ┣ 📜GlobalStyles.js
┃ ┃ ┣ 📜index.css
┃ ┃ ┗ 📜swal.config.css
┃ ┣ 📂utils
┃ ┃ ┣ 📜cookies.js
┃ ┃ ┗ 📜igonerePath.js
┃ ┣ 📜App.jsx
┃ ┗ 📜main.jsx
┣ 📜.dockerignore
┣ 📜.env
┣ 📜.eslintrc.cjs
┣ 📜.git
┣ 📜.gitignore
┣ 📜.gitmessage.txt
┣ 📜.prettierrc
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜eslint.config.js
┣ 📜index.html
┣ 📜jsconfig.json
┣ 📜package-lock.json
┣ 📜package.json
┗ 📜vite.config.js
MVStudio-Backend
📦MVStudio-Backend
┣ 📂.github
┣ 📂.idea
┣ 📂charts
┃ ┣ 📂__pycache__
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂config
┃ ┣ 📂__pycache__
┃ ┣ 📜__init__.py
┃ ┣ 📜asgi.py
┃ ┣ 📜celery.py
┃ ┣ 📜settings.py
┃ ┣ 📜urls.py
┃ ┗ 📜wsgi.py
┣ 📂logs
┣ 📂member
┃ ┣ 📂__pycache__
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜callback.py
┃ ┣ 📜constants.py
┃ ┣ 📜models.py
┃ ┣ 📜payment.py
┃ ┣ 📜serializers.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂music_videos
┃ ┣ 📂__pycache__
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜documents.py
┃ ┣ 📜models.py
┃ ┣ 📜s3_utils.py
┃ ┣ 📜serializers.py
┃ ┣ 📜tasks.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂oauth
┃ ┣ 📂__pycache__
┃ ┣ 📜admin.py
┃ ┣ 📜apis.py
┃ ┣ 📜apps.py
┃ ┣ 📜authenticate.py
┃ ┣ 📜handler.py
┃ ┣ 📜mixins.py
┃ ┣ 📜models.py
┃ ┣ 📜services.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┣ 📜utils.py
┃ ┗ 📜views.py
┣ 📜.env
┣ 📜.git
┣ 📜.gitignore
┣ 📜.gitmessage.txt
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜manage.py
┗ 📜requirements.txt
Name | 조진우 | 강기환 | 김진희 | 박유경 | 유성원 | 최호원 |
---|---|---|---|---|---|---|
Profile | ||||||
Role | Leader, Backend, Frontend, DevOps |
Backend, DevOps | Backend, DevOps | Frontend, Design | Frontend, Design | Frontend, Design |
GitHub | @jinoo0306 | @Gihwan2 | @kimzini | @ukongee | @Youth-one | @BMHowon |