51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# h-lab
|
|
|
|
유튜브 데이터를 수집하고 분석하는 개인용 웹 서비스입니다.
|
|
Spring Boot 4.x(3.4.0) 기반의 백엔드와 React + Vite 기반의 프론트엔드로 구성되어 있습니다.
|
|
|
|
## 🛠 Tech Stack
|
|
|
|
### Backend
|
|
- **Framework**: Spring Boot 3.4.0 (Java 21)
|
|
- **Database**: H2 (Development), JPA
|
|
- **API Docs**: Swagger UI (SpringDoc)
|
|
- **Architecture**: Domain-Driven Design style
|
|
|
|
### Frontend
|
|
- **Framework**: React 18 (Vite)
|
|
- **Language**: TypeScript
|
|
- **Styling**: Vanilla CSS + CSS Variables (Dark Mode)
|
|
- **State**: Zustand
|
|
- **Charts**: Recharts
|
|
|
|
## 🚀 How to Run
|
|
|
|
### Backend & Frontend (Integrated)
|
|
1. `backend` 디렉토리로 이동
|
|
2. `./gradlew bootRun` 실행 (Windows: `gradlew bootRun`)
|
|
3. 웹 서비스 접속: `http://localhost:8080`
|
|
- 메인 대시보드: `http://localhost:8080/`
|
|
- 채널 관리: `http://localhost:8080/channels`
|
|
- Swagger UI: `http://localhost:8080/swagger-ui.html`
|
|
|
|
### Frontend (Legacy React)
|
|
*Removed in favor of Thymeleaf Server-Side Rendering*
|
|
|
|
## 📂 Project Structure
|
|
|
|
```
|
|
h-lab/
|
|
├── src/main/java/com/hlab/yanalyst/
|
|
│ ├── domain/ # Domain Entities (Video, Channel...)
|
|
│ └── web/ # Web Controllers (Thymeleaf)
|
|
│
|
|
└── src/main/resources/
|
|
├── static/ # CSS, JS
|
|
└── templates/ # HTML Templates (Thymeleaf)
|
|
```
|
|
|
|
## ✨ Key Features
|
|
- **Dashboard**: 전체 데이터 요약 및 시각화 (Charts)
|
|
- **Channel Management**: 분석 대상 유튜브 채널 관리
|
|
- **Dark Mode**: 눈이 편안한 프리미엄 다크 모드 UI
|