팀을 위한 프리미엄 프레젠테이션 뷰어
Modern Team Presentation Viewer with Glassmorphism Design
🔗 Service URL: https://gem-deck.pages.dev
Gem Deck은 모던한 UI와 글래스모피즘(Glassmorphism) 디자인이 결합된 웹 기반 프레젠테이션 뷰어입니다.
HTML 기반의 프레젠테이션 파일을 아름답게 관리하고 열람할 수 있으며, Cloudflare Pages와 Workers를 통해 빠르고 안전하게 동작합니다.
- 🎨 Premium UX/UI: 최신 트렌드의 글래스모피즘 인터페이스와 고급스러운 다크 모드 테마
- 📂 스마트 파일 관리: 드래그 앤 드롭으로 HTML 프레젠테이션 및 관련 이미지 업로드
- ⚡️ 빠른 뷰어: Cloudflare Edge Network를 활용한 초고속 로딩
- 🔒 보안 로그인: Google 계정 연동을 통한 안전한 사용자 인증
- ✏️ 파일 이름 변경: 리스트/그리드 뷰에서 즉시 파일 이름 수정 (확장자 자동 관리)
- 🔍 편리한 탐색: 리스트/그리드 뷰 전환 및 검색 기능 제공
| Category | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite |
| Styling | Tailwind CSS v4, PostCSS, Lucide Icons |
| Backend | Cloudflare Pages Functions (Workers) |
| Storage | Cloudflare R2 (Binding: GEM_DECK) |
| Package | npm, yarn |
Cloudflare Pages에 배포 시 다음 설정이 필수입니다.
Settings > Functions > R2 Bucket Bindings에서 다음 변수를 추가합니다.
- Variable name:
GEM_DECK - R2 Bucket: (사용 중인 R2 버킷 이름, 예:
gem-deck)
Settings > Environment Variables에서 다음 변수를 추가합니다.
ENCRYPTION_SECRET: 파일 경로 암호화 키ADMIN_EMAIL: 관리자 권한용 이메일GOOGLE_CLIENT_ID: Google OAuth Client IDGOOGLE_CLIENT_SECRET: Google OAuth Client SecretGOOGLE_CALLBACK_URL: OAuth 콜백 URL (예:https://your-domain.com/auth/callback)TURNSTILE_SECRET_KEY: Cloudflare Turnstile Secret Key (Backend)
로컬 개발 환경에서 프로젝트를 실행하는 방법입니다.
Frontend (.env):
VITE_TURNSTILE_SITE_KEY를 .env 파일에 추가합니다.
VITE_TURNSTILE_SITE_KEY=your_site_key_hereBackend (.dev.vars):
Cloudflare Dashboard에서 발급받은 실제 Site Key와 Secret Key를 .dev.vars에 추가합니다.
TURNSTILE_SECRET_KEY=your_secret_key_here
VITE_TURNSTILE_SITE_KEY=your_site_key_here운영 환경(Cloudflare Pages)에서는 Settings > Environment Variables에 동일한 키를 등록해야 합니다.
git clone https://github.com/MJ-Youn/gem-deck.git
cd gem-decknpm install이 프로젝트는 wrangler를 사용하여 Cloudflare Pages 환경을 시뮬레이션합니다.
npm run dev- 서버는
http://localhost:8789에서 자동으로 시작됩니다.
npm run dev: Wrangler Proxy와 Vite 프론트엔드를 통합하여 실행 (추천)npm run dev:frontend: Vite 프론트엔드 단독 실행 (백엔드 API 없음)npm run build: TypeScript 컴파일 및 프로덕션 빌드npm run deploy: 빌드 후 Cloudflare Pages에 배포
gem-deck/
├── 📂 functions/ # Cloudflare Pages Functions (Backend API)
├── 📂 src/
├── │ ├── 📂 components/ # 재사용 가능한 UI 컴포넌트
├── │ ├── 📂 pages/ # 라우트 페이지 (Login, Dashboard, Viewer)
├── │ ├── 📜 App.tsx # 메인 앱 라우터
├── │ └── 📜 index.css # 전역 스타일 (Tailwind v4)
├── 📜 package.json
└── 📜 wrangler.toml # Cloudflare 설정 파일
Created by 윤명준 (MJ Yune)
- GitHub: @MJ-Youn
- Email: yun0244@naver.com
This project is licensed under the MIT License.
"In-Browser Code Editing & Comprehensive Docs"
- ✨ 기능 추가 (Features):
- HTML 코드 편집 (HTML Editor): 대시보드에서 HTML 파일을 바로 수정할 수 있는 전용 모나코(Monaco) 에디터 기능 추가.
- UI 개선 (UI Enhancements): 버튼 툴팁 추가 및 파일 아이콘/색상 구분 강화.
- 📚 문서화 (Documentation):
- Javadoc 표준화: 모든 주요 소스 코드(
src,functions)에 한국어 Javadoc 주석 추가 완료.
- Javadoc 표준화: 모든 주요 소스 코드(
- 🧹 리팩토링 (Refactoring):
- 코드 구조 정리 및 불필요한 파일 정리.
"Enhanced Admin Capabilities & Code Cleanup"
- ✨ 기능 추가 (Features):
- 링크 복사 (Copy Link): Dashboard 및 Admin Dashboard의 리스트/그리드 뷰에서 파일 링크 즉시 복사 기능 추가.
- 시스템 상태 링크 (Admin): Admin Dashboard의 Status Card(Google, Cloudflare, R2) 클릭 시 해당 서비스 대시보드로 이동.
- 🧹 리팩토링 & 정리 (Refactoring & Cleanup):
- Global Rules: 모든 TSX 소스 코드에 한글 Javadoc(Author: 윤명준) 및 코딩 컨벤션 적용.
- Logging: 불필요한
console.log,console.error제거. - Cleanup: 사용하지 않는
Viewer.tsx컴포넌트 및 라우트 제거.
- 보안 강화 (Security):
- 중요 액션(파일 업로드, 삭제) 시 Cloudflare Turnstile 검증 도입.
- 로그인 세션 유지 시간을 그대로 두면서 봇 악용 방지.
- UI 개선 (UX):
- 리스트 뷰 이름 변경: 팝업 대신 인라인 수정 방식으로 변경 (그리드 뷰와 통일).
- 대시보드 검증 모달 디자인 적용.
- 자산 업데이트:
- 새로운 로고 및 파비콘 적용.
- SEO:
robots.txt추가 (개인 페이지 크롤링 방지).
"Enhanced Usability & Code Quality"
- ✏️ 파일 이름 변경 기능:
- 리스트/그리드 뷰에서 파일을 직접 이름 변경할 수 있습니다.
.html확장자를 자동으로 유지하며 사용자 친화적인 UI를 제공합니다.
- 🧹 코드 리팩토링 및 표준화:
- 모든 주요 소스 코드(
functions,src)에 코딩 표준(Korean Javadoc, Braces) 적용. - 불필요한 코드 제거 및 가독성 향상.
- 모든 주요 소스 코드(
- ⚙️ 배포 구성 최적화:
- R2 버킷 바인딩 변수를 명확한 이름(
GEM_DECK)으로 통일.
- R2 버킷 바인딩 변수를 명확한 이름(
"Premium Glassmorphism Design Update"
- 🎨 디자인 전면 개편: 전체 UI에 Glassmorphism(유리 잔상 효과) 테마 적용
- 🌗 테마 강화: Deep Indigo & Violet 그라데이션 기반의 모던 다크 모드 완성
- 📂 대시보드 개선:
- 리스트 뷰 / 그리드 뷰 전환 기능 추가
- 검색 기능 추가
- 드래그 앤 드롭 업로드 Zone UX 개선
- 🔧 기술적 개선:
Tailwind CSS v4완벽 호환성 확보.gitignore및README.md등 프로젝트 설정 파일 표준화Outfit모던 폰트 적용 가독성 향상