📌 프론트엔드 바로가기
📌 백엔드 바로가기
📌 크롤링 서버 바로가기
📌 예약 서버 바로가기
방탈출 카페 정보 제공 및 예약 플랫폼, 오픈더도어
방탈출 예약을 해본 적이 있으신가요? 방탈출 시장은 점점 커지고 있지만 현재 방탈출 플랫폼은 필요한 기능을 제공하지 못하고 있습니다. 오픈더도어
는 사용자들에게 편리한 검색, 예약 대기 및 빈자리 알림, 플랫폼 내에서의 예약을 제공합니다. 방탈출 플랫폼을 통해 방탈출 업체와 사용자들 모두에게 도움이 되고자 합니다.
기획 배경
- 방탈출 검색 결과를 지도에서 볼 수 없어서 지도 앱을 번갈아 가면서 사용해야 함
- 플랫폼에 예약 기능이 없어서 각기 다른 자체 사이트에서 예약을 진행해야 함
- 자체 사이트들은 제대로 된 예약 시스템을 갖추고 있지 않아 티켓팅을 놓친다면 빈자리가 났는지 수시로 들어가서 확인해야 함
서비스 의도
- 방탈출 플랫폼 최초로 예약 기능 제공. 사용자가 방탈출 검색부터 예약까지의 모든 시퀀스를 플랫폼 안에서 할 수 있도록 함. 방탈출 내역 관리 및 개인화된 추천을 제공할 수 있음.
- 예약 대기 및 빈자리 알림 기능을 제공. 사용자들은 티켓팅을 놓쳐도 이후에 예약할 수 있으며 방탈출 업체들은 공실로 인한 피해를 줄일 수 있음
진행 일정
- 개발 기간 : 2023.10.10 ~ 2023.11.19
- 배포 기간 : 2023.11.06 ~ 2023.11.27
메인 화면에서는 검색, 주차별 테마 랭킹, 내 주변 테마 정보, 북마크 한 테마 정보를 확인할 수 있습니다.
메인 화면 | 메인 화면 검색 | 카카오 로그인 |
주차별 인기 테마를 확인할 수 있습니다.
인기 테마 순위는 한 주 간의 조회수, 북마크 수, 리뷰 수, 평점을 고려하여 산정됩니다.
인기 테마 둘러보기 | 인기 테마 상세 보기 | - |
사용자가 입력한 검색어가 방탈출카페 지점명, 테마명, 지명, 장르, 테마 설명에 포함된 테마들이 검색 결과로 보여집니다.
검색 결과에 대해 테마 권장 인원과 지역으로 필터링 할 수 있고, 추천순, 북마크 많은 순, 리뷰 많은 순, 가까운 순, 예약 시간 빠른 순으로 정렬할 수 있습니다.
검색 결과는 리스트와 지도로 확인할 수 있습니다.
지도에서 현재 위치 주변 검색 | 지도에서 디테일 확인 | 리스트 보기 | 검색 필터링 |
테마 상세 화면에서는 테마에 대한 기본적인 정보(지점명, 테마명, 위치, 장르, 테마 설명, 금액 등)가 제공됩니다.
예약 가능한 날짜와 실시간 시간 정보를 볼 수 있고, 테마(지점) 위치를 지도로 확인할 수 있습니다.
리뷰에서는 사용자들이 남긴 평점, 탈출 여부, 사용한 힌트 수, 방탈출 한 날짜/시간/인원 정보, 주관적 난이도 등을 확인할 수 있습니다.
비회원인 경우에는 리뷰가 1개만 보여지고, 회원인 경우 전체 리뷰를 볼 수 있습니다.
테마 상세 보기 | 회원 리뷰 보기 | 비회원 리뷰 보기 |
서비스 내에서 원하는 날짜와 시간, 인원을 선택하여 방탈출을 예약할 수 있습니다.
회원인 경우에는 회원 가입 시 입력한 이름, 전화번호로 예약이 진행되며, 비회원인 경우에는 직접 입력한 이름과 인증받은 전화번호로 예약이 진행됩니다.
예약 완료 시, 앱 푸시 알림을 통해 예약 성공을 확인할 수 있습니다.
다른 사용자가 먼저 예약해서 예약이 불가한 테마에 예약 대기를 걸어두면, 빈자리가 났을 때 빈자리 알림을 받아볼 수 있습니다.
또한, 북마크해둔 테마 예약이 오픈되기 10분 전에 알림이 전송됩니다.
예약 시간 확인하기 | 예약하기 | 알림 리스트 |
- Frontend
📂android
┣ 📂app
┃ ┣ 📂src
┃ ┃ ┣ 📂debug
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂assets
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┣ 📂res
┃ ┃ ┗ 📂release
┗ 📂gradle
📂apis
📂assets
┣ 📂icons
┗ 📂images
📂components
┣ 📂BarGraph
┃ ┣ 📂components
┃ ┃ ┗ 📂BarGraphItem
┣ 📂BottomNavigator
┣ 📂Button
┣ 📂Calendar
┣ 📂CheckBox
┣ 📂Dropdown
┣ 📂EscapeInfo
┣ 📂Fab
┣ 📂GeolocationAPI
┣ 📂Header
┣ 📂InfoCard
┣ 📂Input
┣ 📂ListItem
┣ 📂Maps
┃ ┣ 📂MyLocationMarker
┣ 📂MiniInfoCard
┣ 📂Review
┣ 📂StarRating
┗ 📂_admin
┃ ┣ 📂_AdminAxiosTestBox
┃ ┗ 📂_AdminRightNavigation
📂constants
📂ios
┣ 📂OpenTheDoor
┃ ┗ 📂Images.xcassets
┣ 📂OpenTheDoor.xcodeproj
┗ 📂OpenTheDoorTests
📂recoil
┣ 📂alarm
┣ 📂map
┣ 📂member
┣ 📂reservation
┣ 📂review
┣ 📂search
┣ 📂selector
┣ 📂state
┗ 📂theme
📂screens
┣ 📂AlarmScreen
┣ 📂BookmarkListScreen
┣ 📂CompareThemeScreen
┣ 📂HomeScreen
┃ ┣ 📂components
┃ ┃ ┣ 📂BookmarkedTheme
┃ ┃ ┣ 📂HomeTitle
┃ ┃ ┣ 📂InputHeadline
┃ ┃ ┣ 📂NearByTheme
┃ ┃ ┣ 📂RenderThemeItem
┃ ┃ ┗ 📂WeeklyTheme
┣ 📂KakaoLoginScreen
┣ 📂LoginScreen
┣ 📂MypageScreen
┃ ┣ 📂components
┃ ┃ ┣ 📂MypageLogin
┃ ┃ ┣ 📂NonUserFeatureList
┃ ┃ ┣ 📂ReservationInfo
┃ ┃ ┣ 📂UserFeatureList
┃ ┃ ┗ 📂UserProfile
┣ 📂ProfileUpdateScreen
┣ 📂RankingScreen
┣ 📂RecordScreen
┣ 📂ReservationListScreen
┣ 📂ReservationScreen
┣ 📂ReservationWaitingScreen
┣ 📂ReviewScreen
┃ ┣ 📂components
┃ ┃ ┣ 📂BackgroundImg
┃ ┃ ┣ 📂DifficultySlider
┃ ┃ ┣ 📂ReviewBody
┃ ┃ ┣ 📂ReviewContent
┃ ┃ ┣ 📂ReviewTitle
┃ ┃ ┗ 📂UseHint
┣ 📂SearchScreen
┃ ┣ 📂components
┃ ┃ ┗ 📂SearchScreenMap
┣ 📂SettingScreen
┣ 📂SignUpScreen
┣ 📂ThemeDetailScreen
┃ ┣ 📂components
┃ ┃ ┣ 📂EscapeInfoView
┃ ┃ ┃ ┣ 📂components
┃ ┃ ┃ ┃ ┗ 📂EscapeCharacterItem
┃ ┃ ┣ 📂MyReview
┃ ┃ ┣ 📂ThemeStarRate
┃ ┃ ┗ 📂ThemeTitleContent
📂storage
📂styles
📜App.tsx
- Backend
📂apigateway-server
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂apigatewayserver
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂error
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂redis
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂security
📂config-server
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┃ ┗ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂configserver
┣ 📂eureka-server
┃ ┣ 📂src
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂eurekaserver
📂member-service
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┣ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂memberservice
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂bookmark
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂member
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂profile
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂review
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂global
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂client
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂input
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂output
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂error
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂errorCode
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂exception
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂redis
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂util
📂notification-service
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂notificationservice
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂kafka
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂output
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂notification
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂global
📂reservation-service
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂reservationservice
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂reservation
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂timeline
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂waiting
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂global
📂search-service
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂searchservice
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂theme
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂global
📂sender-server
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┗ 📂rainbowgon
┃ ┃ ┃ ┃ ┃ ┗ 📂senderserver
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂fcm
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂kafka
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂sender
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂global
고세훈 | 변정원 | 최해미 | 이정명 | 전혜련 | 이남곤 |
Frontend |
Backend 검색팀 |
Backend 회원팀 |
Frontend Design |
Backend 알림팀 |
Backend 예약팀 INFRA |