Skip to content

Commit d19205a

Browse files
authored
Initialize README with project details
Added detailed project overview, main features, system architecture, tech stack, project structure, and backend team information.
1 parent 8c12237 commit d19205a

1 file changed

Lines changed: 169 additions & 0 deletions

File tree

README.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# 🎵 내 콘서트를 부탁해 (NCB) - Backend
2+
3+
> 예매부터 뒤풀이까지, 공연 관람의 하루를 관리하는 올인원 플랫폼
4+
5+
<img width="1920" height="1080" alt="4-기획 의도" src="https://github.com/user-attachments/assets/92b94aa5-6ca3-4be5-acdd-509b6c7c8116" />
6+
7+
---
8+
9+
# 📌 Project Overview
10+
11+
<img width="1920" height="1080" alt="5-프로젝트 개요" src="https://github.com/user-attachments/assets/94c2d2ab-a6fd-465c-a728-d001ed5a8e79" />
12+
13+
14+
# 🚀 Main Features
15+
16+
### 공연 탐색
17+
18+
- Kopis API 기반 공연 데이터 조회
19+
- 공연 일자 / 조회수 기준 정렬
20+
- 무한 스크롤 기반 공연 목록 제공
21+
- 공연 검색 기능
22+
23+
### 검색 자동완성
24+
25+
- Redis 기반 자동완성 검색
26+
- 공연 제목 역인덱스 구조 활용
27+
- 조회수 기반 검색 결과 노출
28+
29+
### 아티스트 정보 제공
30+
31+
외부 API를 활용하여 아티스트 정보를 수집하고 제공합니다.
32+
33+
사용 API
34+
35+
- Spotify API
36+
- Wikidata API
37+
- MusicBrainz API
38+
39+
제공 정보
40+
41+
- 아티스트 소개
42+
- 인기 트랙
43+
- 인기 앨범
44+
- 팔로워 수 / 인기도
45+
- 유사 아티스트
46+
47+
Spotify와 연동되어 **앨범 클릭 시 Spotify 스트리밍 페이지로 이동**합니다.
48+
49+
### 실시간 채팅
50+
51+
WebSocket + STOMP 기반 채팅 기능
52+
53+
- 실시간 채팅 메시지 송수신
54+
- 채팅 메시지 저장 및 조회
55+
- 채팅방 접속자 수 관리
56+
- 채팅방 참여자 관리
57+
58+
Redis를 활용하여
59+
60+
- Redis Stream → 메시지 저장
61+
- Redis Set → 접속자 관리
62+
63+
### 공연 일정 플래너
64+
65+
공연 당일 일정을 관리하고 공유할 수 있는 기능
66+
67+
- 공연 일정 생성 및 관리
68+
- 장소 기반 일정 계획
69+
- 공유 링크 생성
70+
- UUID 기반 공유 토큰
71+
- 1일 후 자동 만료
72+
73+
### 권한 관리
74+
75+
플래너 참여자 권한 관리
76+
77+
권한 유형
78+
79+
- OWNER
80+
- EDITOR
81+
- VIEWER
82+
83+
각 권한에 따라 조회 / 수정 / 삭제 권한이 다르게 적용됩니다.
84+
85+
### 지도 기반 장소 탐색
86+
87+
외부 지도 API 활용
88+
89+
사용 API
90+
91+
- Kakao Map API
92+
- Kakao Mobility API
93+
- TMAP API
94+
95+
제공 기능
96+
97+
- 공연장 주변 카페 / 맛집 검색
98+
- 대중교통 길찾기
99+
- 도보 / 차량 이동 시간 계산
100+
101+
---
102+
103+
# 🏗 System Architecture
104+
<img width="1920" height="1080" alt="투표 _ 박상아 _ 변수연 _ 최병준 _ 김민석 _ 이혜지 _ 김윤수 Codecrete" src="https://github.com/user-attachments/assets/a7513e8e-dfe1-4a9d-a506-58761133fe73" />
105+
106+
107+
# 🛠 Tech Stack
108+
109+
### Backend
110+
![Java](https://img.shields.io/badge/Java-17-007396?style=for-the-badge&logo=java&logoColor=white)
111+
![Spring Boot](https://img.shields.io/badge/Spring_Boot-3.0-6DB33F?style=for-the-badge&logo=springboot&logoColor=white)
112+
![Spring Data JPA](https://img.shields.io/badge/Spring_Data_JPA-6DB33F?style=for-the-badge)
113+
![Hibernate](https://img.shields.io/badge/Hibernate-59666C?style=for-the-badge&logo=hibernate&logoColor=white)
114+
![JWT](https://img.shields.io/badge/JWT-Authentication-000000?style=for-the-badge&logo=jsonwebtokens&logoColor=white)
115+
![WebSocket](https://img.shields.io/badge/WebSocket-STOMP-010101?style=for-the-badge)
116+
117+
### Database
118+
![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge&logo=mysql&logoColor=white)
119+
![Redis](https://img.shields.io/badge/Redis-DC382D?style=for-the-badge&logo=redis&logoColor=white)
120+
121+
### Infrastructure
122+
![AWS EC2](https://img.shields.io/badge/AWS_EC2-FF9900?style=for-the-badge&logo=amazon-ec2&logoColor=white)
123+
![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
124+
125+
### DevOps
126+
![GitHub Actions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=for-the-badge&logo=githubactions&logoColor=white)
127+
128+
### External API
129+
![Kopis API](https://img.shields.io/badge/Kopis_API-000000?style=for-the-badge)
130+
![Spotify API](https://img.shields.io/badge/Spotify_API-1DB954?style=for-the-badge&logo=spotify&logoColor=white)
131+
![Kakao Map](https://img.shields.io/badge/Kakao_Map_API-FFCD00?style=for-the-badge)
132+
![TMAP API](https://img.shields.io/badge/TMAP_API-FF4F00?style=for-the-badge)
133+
134+
---
135+
136+
## 📂 Project Structure
137+
138+
```text
139+
src
140+
├─ main
141+
│ ├─ java
142+
│ │ └─ com.back.web7_9_codecrete_be
143+
│ │ ├─ domain # 도메인별 비즈니스 로직
144+
│ │ │ ├─ auth
145+
│ │ │ ├─ users
146+
│ │ │ ├─ concerts
147+
│ │ │ ├─ artists
148+
│ │ │ ├─ community
149+
│ │ │ ├─ chats
150+
│ │ │ ├─ plans
151+
│ │ │ └─ location
152+
│ │ ├─ global # 공통 설정 및 인프라
153+
│ │ │ ├─ config
154+
│ │ │ ├─ security
155+
│ │ │ ├─ error
156+
│ │ │ ├─ redis
157+
│ │ │ ├─ scheduler
158+
│ │ │ └─ websocket
159+
│ │ └─ Web79CodecreteBeApplication
160+
│ └─ resources
161+
│ └─ application.yml
162+
163+
```
164+
---
165+
166+
# 👥 Backend Team
167+
<img width="855" height="484" alt="screencapture-miricanvas-v2-ko-design2-139b13ea-a2b5-4b45-a015-0ad51e6e0d34-2026-03-17-17_36_17" src="https://github.com/user-attachments/assets/db33fbb4-8823-4c77-830d-cb7fc1e871cb" />
168+
169+
---

0 commit comments

Comments
 (0)