Skip to content

Commit 067543e

Browse files
committed
add readme.md
1 parent 54f2865 commit 067543e

2 files changed

Lines changed: 102 additions & 0 deletions

File tree

README.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# Scriptum
2+
3+
[Scriptum](https://scriptum.rootly.kr)은 한글 스크립트가 없는 YouTube 동영상의 스크립트를 AI로 생성하고, 직접 업로드하여 지식 아카이브를 구축하는 웹 애플리케이션입니다. 사용자는 키워드 검색을 통해 자막 내의 특정 정보를 빠르게 찾고, 해당 시점의 영상을 즉시 재생하여 학습 효율을 높일 수 있습니다.
4+
5+
## 아키텍처
6+
7+
![alt text](image-1.png)
8+
9+
- 백엔드, ai pipeline은 로컬에서 실행됨
10+
11+
## 주요 기능 (Key Features)
12+
13+
- **지식 검색 및 아카이브**: 자막 기반의 정교한 검색 기능을 통해 원하는 정보를 정확하게 찾아냅니다.
14+
- **실시간 영상 동기화**: 검색된 자막 시점으로 영상을 즉시 이동시켜 재생합니다.
15+
- **사용자 스크립트 관리**: 관심 있는 스크립트를 저장하고 관리할 수 있습니다.
16+
- **다국어 지원**: 다양한 언어의 자막 데이터를 처리하고 표시합니다.
17+
- **반응형 UI**: 데스크탑 및 모바일 환경에 최적화된 사용자 인터페이스를 제공합니다.
18+
19+
## 기술 스택 (Tech Stack)
20+
21+
### Frontend
22+
23+
- **Core**: React 19, TypeScript, Vite
24+
- **Styling**: TailwindCSS v4
25+
- **State Management**: React Context / Custom Hooks
26+
- **Routing**: React Router 7
27+
- **Video Player**: React Player
28+
29+
### Backend / BaaS
30+
31+
- **Firebase**:
32+
- **Authentication**: 사용자 인증 및 관리
33+
- **Firestore**: 데이터베이스 (스크립트, 사용자 정보 저장)
34+
35+
### Search Engine
36+
37+
- **Typesense**: 빠르고 강력한 오타 보정 검색 기능 제공 (서버/클라우드)
38+
- **Fuse.js**: 클라이언트 사이드 경량 검색 지원
39+
- **React InstantSearch**: 검색 UI 구현
40+
41+
### Testing
42+
43+
- **Unit/Integration**: Vitest, React Testing Library
44+
- **E2E**: Playwright
45+
46+
## 시작하기 (Getting Started)
47+
48+
이 프로젝트를 로컬 환경에서 실행하기 위한 방법입니다.
49+
50+
### 전제 조건 (Prerequisites)
51+
52+
- **Node.js**: v20 이상 권장
53+
- **npm** 또는 **yarn**
54+
55+
### 환경 변수 설정 (Environment Setup)
56+
57+
프로젝트 루트에 `.env` 파일을 생성하고 다음 Firebase 설정 값을 입력해야 합니다.
58+
59+
```env
60+
VITE_FIREBASE_API_KEY=your_api_key
61+
VITE_FIREBASE_AUTH_DOMAIN=your_auth_domain
62+
VITE_FIREBASE_PROJECT_ID=your_project_id
63+
VITE_FIREBASE_STORAGE_BUCKET=your_storage_bucket
64+
VITE_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
65+
VITE_FIREBASE_APP_ID=your_app_id
66+
VITE_FIREBASE_MEASUREMENT_ID=your_measurement_id
67+
```
68+
69+
### 실행 (Run)
70+
71+
개발 서버를 실행합니다.
72+
73+
```bash
74+
npm run dev
75+
```
76+
77+
브라우저에서 `http://localhost:5173`으로 접속하여 확인합니다.
78+
79+
## 스크립트 (Scripts)
80+
81+
- `npm run dev`: 개발 서버 실행
82+
- `npm run build`: 프로덕션 빌드 (TypeScript 컴파일 및 테스트 포함)
83+
- `npm run test`: 유닛 테스트 실행 (Vitest)
84+
- `npm run lint`: ESLint를 사용한 코드 린트
85+
- `npm run preview`: 빌드된 애플리케이션 미리보기
86+
87+
## 폴더 구조 (Project Structure)
88+
89+
```
90+
src/
91+
├── assets/ # 이미지, 폰트 등 정적 자원
92+
├── components/ # 재사용 가능한 UI 컴포넌트
93+
├── context/ # 전역 상태 관리 (Context API)
94+
├── hooks/ # 커스텀 React Hooks
95+
├── pages/ # 페이지 단위 컴포넌트 (라우트)
96+
├── services/ # Firebase 및 외부 API 통신 로직
97+
├── types/ # TypeScript 타입 정의
98+
├── utils/ # 헬퍼 함수 및 유틸리티
99+
└── main.tsx # 진입점 (Entry Point)
100+
```
101+
102+
© 2026 Scriptum. All rights reserved.

image-1.png

127 KB
Loading

0 commit comments

Comments
 (0)