클라이머들을 위한 SNS 커뮤니티에서 실시간 클라이밍 영상을 공유하고, 클라이머들과 교류해보세요! 🤩
클라이밍 커뮤니티를 통해 클라이머들이 연결되고, 지식과 경험을 공유하며, 새로운 도전과 성장을 함께하는 클라이밍 허브 구축을 목표로 하는 플랫폼입니다 🍀
2024년 7월 8일 - 2024년 8월 16일 (6주)
| 김광현 | 김수빈 | 이찬민 | 정해준 | 임예원 | 조승기 |
|---|---|---|---|---|---|
| 김광현 | 정해준 | ||||
| 프론트엔드 | 팀장 및 발표자, 백엔드 |
백엔드 | 백엔드 | 프론트엔드 | 백엔드 |
-
사용자 경험 향상
- 개인별 클라이밍 기록 관리 및 분석
- AI 기반 기술 분석 및 개선 제안
- 경쟁과 도전 요소를 도입하여 동기 부여
-
커뮤니티 활성화
- 클라이밍 루트와 문제에 대한 데이터베이스 구축
- 사용자 생성 콘텐츠(리뷰, 실시간 채팅 등)를 통한 소통 강화
-
데이터 기반 서비스 개선
- AI 기반 영상 분석으로 손 동작 및 루트 개선 피드백 제공
- 키워드 기반 검색을 통해 사용자 맞춤형 정보 제공
- 사용자가 업로드한 클라이밍 사진을 AI가 분석하여 잡은 돌과 루트를 시각화.
- 클라이밍 성과와 개선점을 직관적으로 파악 가능.
- 클라이밍 세션을 실시간으로 스트리밍하며 친구나 커뮤니티 멤버들과 공유.
- 실시간 채팅 기능으로 더욱 생동감 있는 소통 가능.
- 친구 추가 및 관리 기능을 통해 커뮤니티를 형성.
- 관심 있는 클라이머를 구독하고 최신 콘텐츠를 받아볼 수 있음.
- 클라이밍장 정보 검색: 매일 매일 업데이트되는 최신 클라이밍장 정보를 제공.
- 유저, 클라이밍장, 태그 검색: 다양한 키워드 기반 검색으로 맞춤형 결과 제공.
- 매일 매일 인기 있는 클라이밍 동영상을 선별 및 제공.
- 커뮤니티 내에서 트렌드를 쉽게 파악할 수 있음.
- 카카오 및 네이버 OAuth 로그인 지원으로 손쉬운 접근성과 보안 제공.
- 클라이밍 기록을 남기거나 정보를 공유할 플랫폼이 부족함.
- 클라이밍 센터나 루트를 검색하기 위한 데이터베이스가 미흡한 현실.
- 클라이밍 커뮤니티를 강화하며 클라이머 간의 정보 공유와 소통을 활성화.
- 데이터베이스 및 AI 기술을 활용한 개인화된 서비스 제공.
- 소통: 전 세계 클라이머가 하나의 플랫폼에서 연결.
- 도전: 개인 및 팀 차원의 기록 도전과 성취감.
- 성장: AI와 데이터를 활용한 기술로 실력 향상.
- 안정성: MSA 기반으로 서비스 장애에 유연하게 대응.
backend
├── 🗂️ auth
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 auth
│ │ │ │ ├── application
│ │ │ │ ├── client
│ │ │ │ ├── common
│ │ │ │ ├── domain
│ │ │ │ │ └── redis
│ │ │ │ ├── dto
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ chat
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 chat
│ │ │ │ ├── application
│ │ │ │ ├── common
│ │ │ │ ├── config
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ contents
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 contents
│ │ │ │ ├── application
│ │ │ │ ├── batch
│ │ │ │ ├── common
│ │ │ │ ├── config
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ │ ├── request
│ │ │ │ │ └── response
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ gateway
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 gateway
│ │ │ └── resources
├── 🗂️ message
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 message
│ │ │ │ ├── application
│ │ │ │ ├── client
│ │ │ │ ├── common
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ sender
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 sender
│ │ │ │ ├── application
│ │ │ │ ├── common
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ streaming
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 streaming
│ │ │ │ ├── application
│ │ │ │ ├── common
│ │ │ │ ├── config
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ │ ├── request
│ │ │ │ │ └── response
│ │ │ │ ├── exception
│ │ │ │ └── presentation
│ │ └── resources
├── 🗂️ user
│ ├── gradle
│ ├── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── ontherock
│ │ │ │ └── 📂 user
│ │ │ │ ├── application
│ │ │ │ ├── client
│ │ │ │ ├── common
│ │ │ │ ├── domain
│ │ │ │ ├── dto
│ │ │ │ └── presentation
│ │ └── resources
frontend
└── on-the-rock-app
└── src
├── api
├── assets
├── components
│ ├── Mobile
│ ├── OpenVidu
│ └── Web
│ ├── Analyze
│ ├── Feed
│ ├── Login
│ ├── MainPage
│ ├── NavBar
│ ├── Streaming
│ ├── Upload
│ └── UserProfile
├── css
└── store
| ERD (SQL) | ERD (NoSQL) |
|---|---|
![]() |
![]() |
| Architecture #1 | Architecture #2 |
|---|---|
| 홈 화면 | 알림 화면 | 스트리밍 화면 | 영상 분석 화면 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 네이버 로그인과 인기 영상 확인 | 받은 알림 확인 | 스트리밍 시작 및 종료 | 클라이밍 영상 분석 |
| 업로드 화면 | 검색창(장소 검색) | 검색창(사용자 검색) | 마이 페이지 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| 영상 업로드 | 클라이밍장 검색 | 사용자 검색 | 내 정보 페이지 |
- 시연 영상: YouTube 링크
- 발표 자료: MiriCanvas 링크
- 배포 링크: https://ontherock.lol









