Skip to content

Yong-ga-ri/bangflix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

방탈출 리뷰 플랫폼 Bangflix

스크린샷_2024-10-08_오후_4 21 04-removebg-preview

팀원

✨ 노다민
✨ 양현진
✨ 용길한
✨ 장호정
✨ 정준서

기술 스택

Front-end

JS Vue & Vite PrimeVue Fetch API
API 통신

Back-end

Java & Spring Boot Spring Data JPA Spring Security & JWT MariaDB Redis SMTP SWAGGER GRADLE
in 이메일 인증

CI/CD

Docker K8S Jenkins Ngrok Terraform Ingress Nginx

개발 도구

VSCode IntelliJ Figma Slack GitHub

프로젝트 소개

방탈출을 사랑하는 모든 이들을 위한 특별한 공간, 방탈출 리뷰 플랫폼 Bangflix에 오신 것을 환영합니다. 이곳은 다양한 방탈출 테마에 대한 솔직한 리뷰를 작성하고, 다른 사용자들의 의견을 통해 내 취향에 맞는 테마를 발견할 수 있는 플랫폼입니다.

기획 배경

  • 방탈출 마니아들을 위한 어플이 존재하긴 하지만 테마별 리뷰 통계가 자세한 수치로 조회되지 않고, 대충 작성된 리뷰가 많아 취향에 맞는 테마를 찾고 싶을 때 어려움이 있습니다. 또한 방탈출을 처음 접하는 사용자들에게 중요한 선택 기준인 테마의 장르 제공이 필요합니다.

차별화 전략

  • 포인트 시스템: 리뷰 작성과 주간 랭킹 선정에 따라 포인트를 제공하여 사용자 참여를 극대화합니다.

  • 커뮤니티와 이벤트 게시판: 플랫폼 내 커뮤니티 게시판은 사용자들이 자유롭게 의견을 나누고, 다양한 방탈출 테마에 대한 정보를 교환할 수 있는 공간입니다. 이벤트 게시판을 통해 현재 할인 중인 테마와 신규 테마를 손쉽게 확인할 수 있어, 사용자들이 최신 정보를 놓치지 않도록 합니다.

  • 다양한 검색 기능: 방탈출 테마를 조회할 수 있는 전용 페이지에서는 테마명으로 검색하거나 장르별로 필터링하여 사용자가 원하는 테마를 쉽게 찾아볼 수 있습니다. 이는 사용자 경험을 개선하고, 개인 맞춤형 추천을 제공합니다.

  • 소셜 기능 강화: 사용자들은 좋았던 테마에는 좋아요를 누르고, 하고 싶은 테마는 스크랩하여 나만의 리스트를 만들 수 있습니다. 이를 통해 사용자 간의 소통을 강화하고, 개인의 취향을 반영한 추천 시스템을 구축할 수 있습니다.

기대효과

  • 사용자 참여 증대: 포인트 시스템과 주간 랭킹을 통해 사용자들이 적극적으로 리뷰를 작성하고, 다른 사용자와 소통하게 됩니다. 이는 플랫폼의 활성화를 가져오고, 지속적인 사용을 유도합니다.

  • 정보의 신뢰성: 사용자들이 작성한 리뷰는 다양한 시각을 제공하며, 다른 사용자들에게 신뢰할 수 있는 정보를 전달합니다. 이로 인해 신규 사용자들이 플랫폼에 쉽게 적응할 수 있습니다.

  • 커뮤니티 형성: 커뮤니티 게시판과 소셜 기능은 사용자 간의 소통을 촉진하여, 방탈출 마니아들이 모여 의견을 나누고 정보를 공유하는 건강한 커뮤니티를 형성할 수 있습니다.

  • 비즈니스 기회 확대: 추후 방탈출 업체들도 플랫폼에 참여하여 사용자 리뷰를 통해 자신들의 테마를 개선하고, 이벤트를 통해 더 많은 고객을 유치할 수 있습니다. 이는 서로에게 윈-윈(win-win) 효과를 가져옵니다.


요구사항 명세서

방플릭스_요구사항명세서

WBS

방플릭스_wbs

DDD

도메인 도출

방플릭스_DDD_Domain



Bounded Context

방플릭스_DDD_BoundedContext



연관 관계

방플릭스_DDD_연관관계

DB 모델링

논리 모델링

방플릭스_논리모델링



물리 모델링

방플릭스_물리모델링

UI 설계

로그인 & 회원가입

방플릭스_UI_회원가입 방플릭스_UI_로그인



메인화면

방플릭스_UI_메인화면



테마(방탈출)

방플릭스_UI_테마



업체(방탈출 매장)

방플릭스_UI_업체



리뷰

방플릭스_UI_리뷰



랭킹

방플릭스_UI_랭킹



공지사항 & 이벤트

방플릭스_UI_공지사항 방플릭스_UI_이벤트



커뮤니티

방플릭스_UI_커뮤니티



마이페이지

방플릭스_UI_마이페이지



관리자 전용 페이지

방플릭스_UI_관리자전용


TEST 결과

회원가입 & 이메일 인증

방플릭스_회원가입1 방플릭스_회원가입2_이메일인증1 방플릭스_회원가입3_이메일인증2



로그인

방플릭스_로그인



메인 페이지(홈)

방플릭스_메인(홈)1 방플릭스_메인(홈)2



테마 추천

테마 추천



테마 목록 및 검색

방플릭스_테마목록1 방플릭스_테마목록2_검색



테마 상세보기(테마 정보 조회, 테마의 리뷰 조회)

방플릭스_테마상세



업체 상세보기(업체 정보 조회, 업체의 베스트 리뷰 조회, 업체가 제공하는 테마 조회)

방플릭스_업체상세



테마 리뷰 작성

방플릭스_리뷰작성1 방플릭스_리뷰작성2



커뮤니티 목록 조회

커뮤니티 목록 조회



커뮤니티 댓글 작성

커뮤니티 댓글 작성



공지사항 조회

공지사항 조회



테마 이벤트 목록 조회

테마이벤트 조회



마이페이지 조회

마이페이지 조회



CI/CD 시연

화면비 1920


CI/CD 아키텍쳐

방플릭스_CI:CD아키텍쳐



Jenkins script

Jenkins script 펼쳐보기
pipeline {
    agent any

    tools {
        gradle 'gradle'
        jdk 'openJDK17'
    }

    environment {
        DOCKERHUB_CREDENTIALS = credentials('DOCKERHUB_PASSWORD')
        DOCKERHUB_USERNAME = 'rlfgks'
        GITHUB_URL = 'https://github.com/variety-crew/bangflix-backend.git'
    }

    stages {
        stage('Preparation') {
            steps {
                script {
                    if (isUnix()) {
                        sh 'docker --version'
                    } else {
                        bat 'docker --version'
                    }
                }
            }
        }
        stage('Source Build') {
            steps {
                git branch: 'main', url: "${env.GITHUB_URL}"
                script {
                    if (isUnix()) {
                        // 로컬 환경에서 사용할 application-local.yml을 application.yml로 복사
                        sh 'cp /Users/yong-gilhan/Desktop/project/veriety-crew/bangflix/backend/src/main/resources/application-local.yml src/main/resources/application.yml'
                        sh "chmod +x ./gradlew"
                        sh "./gradlew clean build"
                    } else {
                        bat "gradlew.bat clean build"
                    }
                }
            }
        }
        stage('Container Build and Push') {
            steps {    
                script {
                    withCredentials([usernamePassword(credentialsId: 'DOCKERHUB_PASSWORD', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) {
                        if (isUnix()) {
                            sh "cp ./build/libs/*.jar ."
                            sh "docker build -t ${DOCKERHUB_USERNAME}/bangflix-springboot:latest . --platform linux/x86_64"
                            sh "docker login -u ${DOCKER_USER} -p ${DOCKER_PASS}"
                            sh "docker push ${DOCKERHUB_USERNAME}/bangflix-springboot:latest"
                        } else {
                            bat "copy .\\build\\libs\\*.jar ."
                            bat "docker build -t ${DOCKERHUB_USERNAME}/bangflix-springboot:latest ."
                            bat "docker login -u %DOCKER_USER% -p %DOCKER_PASS%"
                            bat "docker push ${DOCKERHUB_USERNAME}/bangflix-springboot:latest"
                        }
                    }
                }
            }
        }
    }

    post {
        always {
            script {
                if (isUnix()) {
                    sh 'docker logout'
                } else {
                    bat 'docker logout'
                }
            }
        }
        success {
            echo 'Pipeline succeeded!'
        }
        failure {
            echo 'Pipeline failed!'
        }
    }
}

동료 평가

동료 평가 확인하기

ABOUT [노다민]

FROM COMMENT
양현진 스프링 시큐리티를 담당해주셨는데 처음해보신다고 겁을 먹으셨지만 언제나 그렇듯 잘 마무리 해주셨습니다. 방플릭스 고도화 하면서 토큰 리프레시 로직 함께 도전해보아요~~ 수고하셨습니다!!
용길한 인증/인가에 대한 구현을 담당해주셨습니다. 특히 개발환경과 배포환경이 달랐기에 기능이나 환경이 변경될 때 마다 오류가 지속적으로 생겨 대응하는데에 어려우셨을텐데, 매 상황에 적절히 대응해주셔서 안정적으로 MVP를 구성할 수 있었습니다. 앞으로도 개발 고도화에 힘써주시면 감사하겠습니다! 고생하셨습니다!!
장호정 Spring Security와 redis 등 새로운 기술을 익혀 오셔서 바로 활용하신 게 정말 대단합니다. 처음 적용한다고 두려워 하시면서도 항상 배우고자 하는 태도를 가지고 노력하여 결국 해내시는 점이 존경스럽습니다. 고생하셨습니다.
정준서 다민님께서는 Spring Security와 회원 쪽 개발을 맡아주셨습니다. 처음 Spring Security를 사용하시는 거였지만 짧은 시간 안에 구현을 해주시고, SMTP나 Redis 등 수업에서 배우지 않은 기술을 많이 적용하시는 등 DevOps 프로젝트 기간동안 엄청난 성장을 이루신 것 같습니다. 새로운 기술에 대한 적응력과 두려워 하지 않고, 시도해보시는 점을 본받아 마땅하다고 생각합니다.

ABOUT [양현진]

FROM COMMENT
노다민 이번 프로젝트 프론트엔드 팀장을 맡아 주셨고, 대부분의 페이지를 구현해 주셨습니다. 패키지 구조, 컴포넌트, api 연동 함수 등을 미리 세팅해 주신 모습이 너무 멋졌습니다. 덕분에 저희 프로젝트의 진척도와 완성도가 크게 올라갈 수 있었다고 생각합니다. 고생하셨습니다!
용길한 화면을 구성하고 개발하는데에 큰 기여를 해주셨습니다. 특히 단순히 기능 개발 구현 뿐만 아니라, 모두가 유지보수하기 편하게 리펙토링을 해주셨기에, 단기간에 수준높은 산출물을 얻을 수 있었습니다. 앞으로의 고도화도 같에 힘써주시면 감사하겠습니다.
장호정 프론트엔드의 전반적인 개발을 담당하셨는데 api 연동이 원활하도록 구성을 너무 잘 해주셨습니다. PrimeVue를 활용한 그 많은 페이지 개발과 fetch를 활용한 기능 연결을 빠르고 정확하게 이루어 내신 게 정말 대단합니다. 고생하셨습니다.
정준서 프론트엔드 개발에 대해 전반적인 틀을 짜주시고, 가장 많은 페이지와 컴포넌트, 레이아웃을 개발해주셨습니다. 저는 프론트엔드에 문외한이지만 현진님이 정리해두신 패키지 구조는 가히 아름답다고 말할 수 있습니다. 어느 누가 와도 코드를 파악하기 쉬워 유지보수에 용이하도록 짜여져 있었습니다. 또한 페이지 구성을 잘해주셔서 개발과 시연 할 때, 프론트엔드 화면을 보면서 힐링하며 개발하였습니다.

ABOUT [용길한]

FROM COMMENT
노다민 이번 프로젝트에서 프론트엔드, 백엔드, 인프라까지 담당하시는 모습이 정말 멋졌습니다. 이슈, 논의 사항 등을 적극적으로 공유하며 팀 회의를 이끌어 주셔서 감사했습니다. 또한 모르는 점을 물어보았을 때 늘 열정적으로 설명해 주셔서 많은 점들을 배울 수 있었습니다. 고생하셨습니다!
양현진 개발에 열정적인 마음을 가지신 분입니다. 아는게 많으시고 필터 없이 배우려고 하는 자세가 너무 좋아보입니다. 이번 프로젝트 주제가 데브옵스인데 거의 다 담당해주셨고 잘 이끌어주셨습니다. 그리고 PM이셨는데 팀의 체계적인 Rule을 설정해 우리의 방플릭스가 순탄하게 나아갔던 것 같습니다. 감사합니다!
장호정 전반적인 프로젝트 매니징을 하시면서 개발도 하시고 배포까지 계속해서 관리하시는 게 정말 대단합니다. 논의가 필요한 사항이 있을 때마다 리드하여 회의를 소집해 주시고, 배포 과정에 대해 설명해 주셔서 너무 감사했습니다. 고생하셨습니다.
정준서 일정 관리, 배포 관리, GitHub 관리, 프로젝트 전반적으로 필요한 내용에 대한 소통을 끊임없이 해주셨습니다. 저희 팀에서 가장 바쁘신 분 중에 한 분 이셨던거 같습니다. 시연을 위해 실제 방탈출 관련 데이터가 필요하였는데 해당 데이터도 어디선가 생각지도 못한 방법으로 구해오시는 등 톡톡 튀는 아이디어와 그걸 실현해내시고, 문제 해결이 개발자의 역량이라면 길한님께서 가지고 계신 역량은 대단하다 생각합니다.

ABOUT [장호정]

FROM COMMENT
노다민 백엔드와 프론트엔드를 병행하며 개발을 진행해 주셨습니다. 개발 중 이슈가 발생했을 때 빠르게 파악하고 해결해 나가시는 모습이 멋졌습니다. 프로젝트 기간동안 항상 열정적인 모습을 보여주셔서 저도 자극을 많이 받을 수 있었습니다. 고생하셨습니다!
양현진 프론트와 백엔드를 넘나드는 멀티 개발자이십니다. 자기의 시간을 많이 투자해 프로젝트를 완성시켜가려는 모습이 감동적입니다. 그리고 저희 서비스에 AI 기능을 넣기 위해 따로 공부하셔서 팀 노션에 내용을 정리해주셨는데 방플릭스 고도화 때 AI 기능을 넣는다면 도움이 많이 될 것 같습니다. 다음 파이널 프로젝트에도 화이팅입니다! 수고하셨습니다 ㅎㅎ
용길한 단기간 서비스 구현에 있어서 팀원들이 가장 애먹었던 이유는 빈번한 수정이었습니다. 호정님께서는 매 수정이 필요한 순간에 바로바로 우리의 목적지를 바꿔 API를 갈아수정하고, 프론트엔드/백엔드 가리지 않고, 필요한 부분에 붙어 문제를 해결해주셨습니다. 개발을 위한 개발이 아닌, 세상의 니즈에 알맞은 개발자의 역량을 갖고 계신다는 부분에서 매우 존경합니다. 앞으로의 고도화에도 같이 힘써주세요! 감사합니다
정준서 DB 설계, 백엔드 개발, 프론트엔드 개발을 주로 맡아주셨습니다. 제가 생각지 못한 부분에 대해서도 꼼꼼히 체크를 해주시고, 개발하셔야 할 양이 많은데도 그동안 배운것들을 기반으로 뚝딱뚝딱 만들어내셨습니다.또한, 이번 프로젝트에서 수업에서 배우지 않은 기술을 적용하기 위해 각자 공부하였던 적이 있는데 그 짧은 시간동안 어마어마한 양을 공부하시고 정리해오시는거에 놀랐습니다. 호정님께서는 학습 능력이 뛰어나시고 그걸 적용하는 능력이 탁월하셔서 어떤 일을 하셔도 믿음직스러운 팀원이셨습니다

ABOUT [정준서]

FROM COMMENT
노다민 이번 프로젝트에서 백엔드 팀장을 맡아 전반적인 백엔드 API들을 구현해 주셨습니다. 방탈출 테마 추천 등 어려운 로직의 API도 빠르게 개발하시는 모습이 멋졌습니다. 모르는 점이 있을 때 늘 친절히 설명해 주셔서 감사했습니다!
양현진 우리 방플릭스 백엔드 팀장이셨는데, 아주 능력 좋은 분이셨습니다. API 관련 에러에 대해 빠른 대응을 해주셨습니다. (사실 에러라기 보단 약간의 버그들만 있었음.) 개발 기술에 대한 전반적인 이해도가 높으셔서 프로젝트 진행이 수월했습니다. 고생 많이 하셨습니다! 파이널때도 잘 부탁드립니다.
용길한 프로젝트에 필요한 여러가지 이슈들에 대하여 알맞게 잘 대응해주셨습니다. 특히 요구사항들 중, 여러 데이터들이 관계를 맺어 조회하는 부분이 어려운 상황이 있었습니다. 다양한 방법을 찾아 공유해주시고, 좋은 해결책을 만들어주셨습니다. 또한 자주 수정되는 프로젝트 기획에 적절히 대응해주셨기에, 성공적인 프로젝트를 할 수 있었습니다.
장호정 백엔드의 복잡한 개발 사항이나 수정 사항도 빠르고 정확하게 개발해 내시는 게 정말 대단합니다. 백엔드 개발을 전반적으로 이끌어 주시고, 모르는 부분을 여쭤보면 친절하고 상세하게 설명해주셔서 너무 감사했습니다. 고생하셨습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published