🚀 시놀로지 배포 준비 완료

 주요 변경사항:
- 단일 docker-compose.yml로 통합 (로컬/시놀로지 환경 지원)
- 시놀로지 볼륨 매핑 설정 (volume1: 이미지, volume3: 데이터)
- 통합 배포 가이드 및 자동 배포 스크립트 추가
- 완전한 Memos 스타일 워크플로우 구현

🎯 새로운 기능:
- 📝 메모 작성 (upload.html) - 이미지 업로드 지원
- 📥 수신함 (inbox.html) - 메모 편집 및 Todo/보드 변환
-  Todo 목록 (todo-list.html) - 오늘 할 일 관리
- 📋 보드 (board.html) - 프로젝트 관리, 접기/펼치기, 이미지 지원
- 📚 아카이브 (archive.html) - 완료된 보드 보관
- 🔐 초기 설정 화면 - 관리자 계정 생성

🔧 기술적 개선:
- 이미지 업로드/편집 완전 지원
- 반응형 디자인 및 모바일 최적화
- 보드 완료 후 자동 숨김 처리
- 메모 편집 시 제목 필드 제거
- 테스트 로그인 버튼 제거 (프로덕션 준비)
- 과거 코드 정리 (TodoService, CalendarSyncService 등)

📦 배포 관련:
- env.synology.example - 시놀로지 환경 설정 템플릿
- SYNOLOGY_DEPLOYMENT_GUIDE.md - 상세한 배포 가이드
- deploy-synology.sh - 원클릭 자동 배포 스크립트
- Nginx 정적 파일 서빙 및 이미지 프록시 설정

🗑️ 정리된 파일:
- 사용하지 않는 HTML 페이지들 (dashboard, calendar, checklist 등)
- 복잡한 통합 서비스들 (integrations 폴더)
- 중복된 시놀로지 설정 파일들
This commit is contained in:
Hyungi Ahn
2025-09-24 09:12:39 +09:00
parent 4c7d2d8290
commit 0b967a84fa
42 changed files with 5467 additions and 6691 deletions

192
README.md
View File

@@ -1,31 +1,193 @@
# 📱 Todo Project
간단하고 효율적인 할일 관리 시스템
**메모 → 수신함 → Todo 관리**의 간단하고 직관적인 워크플로우
## 🎯 핵심 워크플로우
```
📝 메모 작성 → 📥 수신함 확인 → ✅ Todo 변환 → 📋 Todo 관리
```
### 3개 페이지로 완성되는 심플한 구조:
1. **📝 새 메모** (`/upload.html`) - 빠른 메모 작성
2. **📥 수신함** (`/inbox.html`) - 메모 확인 & Todo 변환
3. **📋 Todo 목록** (`/todo-list.html`) - 오늘 할 일 관리
## ✨ 주요 기능
- 📊 **반응형 대시보드**: 데스크톱/모바일 최적화
- 📥 **스마트 분류**: AI 기반 자동 분류 제안
- 📷 **이미지 업로드**: 사진과 함께 메모 관리
- 🏷️ **3가지 분류**: Todo, 캘린더, 체크리스트
- 📱 **PWA 지원**: 홈화면 추가 가능
- 🔄 **시놀로지 연동**: 메일플러스 자동 연동
- 🖊️ **빠른 메모 작성**: 텍스트 + 이미지 (최대 5장)
- 📅 **시작일 기반 Todo**: 해야 할 시점이 된 Todo만 표시
- 🏷️ **스마트 상태 관리**: 오늘 시작 / 진행 중 자동 구분
- 📱 **모바일 최적화**: 카메라/갤러리 업로드 지원
- 🔄 **지연 관리**: +3일, +5일, 날짜 선택 연장
- 🎨 **빈티지 UI**: 양피지 테마의 아름다운 인터페이스
## 🚀 빠른 시작
```bash
# 프로젝트 클론
git clone https://git.hyungi.net/hyungi/Todo-Project.git
cd Todo-Project
# Docker로 실행
docker-compose up -d
# 접속
open http://localhost:4000
```
**기본 계정**: `hyungi` / `admin`
## 🏗️ 기술 스택
### Frontend
- **HTML5/CSS3/JavaScript**: 바닐라 JS로 가벼운 구현
- **Tailwind CSS**: 빠른 스타일링
- **PWA**: 홈화면 추가 지원
- **Nginx**: 정적 파일 서빙 & API 프록시
### Backend
- **FastAPI**: 고성능 Python API
- **SQLAlchemy**: 비동기 ORM
- **PostgreSQL**: 안정적인 데이터베이스
- **Pydantic**: 데이터 검증
### Infrastructure
- **Docker Compose**: 컨테이너 오케스트레이션
- **Nginx**: 리버스 프록시
- **Volume**: 데이터 영속성
## 📊 데이터베이스 구조
### 📋 todos 테이블
```sql
Column | Type |
-------------|--------------------------|------------------
id | uuid | ID
user_id | uuid | ID
title | varchar(200) | ( )
description | text | ()
category | enum | MEMO | TODO
status | enum | pending | completed
start_date | timestamp | Todo
image_urls | text | URLs (JSON)
created_at | timestamp |
updated_at | timestamp |
completed_at | timestamp |
```
### 🚀 성능 최적화 인덱스
- `idx_todos_workflow`: 복합 워크플로우 조회 최적화
- `idx_todos_start_date`: 시작일 기준 조회
- `idx_todos_category_status`: 카테고리별 상태 조회
## 🔄 API 엔드포인트
### 인증
- `POST /api/auth/login` - 로그인
- `GET /api/auth/me` - 사용자 정보
### Todo/메모 관리
- `POST /api/todos` - 메모/Todo 생성
- `GET /api/todos?category=memo` - 메모 목록 (수신함)
- `GET /api/todos?category=todo` - Todo 목록
- `PUT /api/todos/{id}` - Todo 수정 (카테고리 변환, 상태 변경)
- `POST /api/todos/upload-image` - 이미지 업로드
## 📱 모바일 지원
### PWA 기능
- 홈화면 추가 가능
- 오프라인 지원 (예정)
- 푸시 알림 (예정)
### 모바일 최적화
- 터치 친화적 UI
- 카메라/갤러리 접근
- 키보드 대응 스크롤
- 이미지 자동 압축
## 🎨 UI/UX 특징
### 빈티지 양피지 테마
- 따뜻한 세피아 색상
- 손글씨 느낌의 폰트
- 그림자와 테두리 효과
- 직관적인 아이콘
### 반응형 디자인
- 데스크톱: 넓은 레이아웃
- 모바일: 세로 최적화
- 터치 제스처 지원
## 🔧 개발 환경 설정
### 로컬 개발
```bash
# 백엔드 개발
cd backend
pip install -e .
uvicorn src.main:app --reload --port 9000
# 프론트엔드 개발
cd frontend
python -m http.server 8000
```
### 환경 변수
```env
# 데이터베이스
DATABASE_URL=postgresql+asyncpg://todo_user:todo_password@localhost:5432/todo_db
# JWT 설정
SECRET_KEY=your-secret-key
ACCESS_TOKEN_EXPIRE_MINUTES=30
# 파일 업로드
UPLOAD_DIR=/data/uploads
MAX_FILE_SIZE=5242880 # 5MB
```
## 📈 성능 최적화
### 데이터베이스
- 복합 인덱스로 쿼리 최적화
- 카테고리별 분리로 효율적 조회
- 이미지 URL JSON 저장으로 정규화 최소화
### 프론트엔드
- 바닐라 JS로 번들 크기 최소화
- 이미지 클라이언트 압축
- 불필요한 로깅 제거
- Nginx 정적 파일 캐싱
## 🚀 배포
### Docker Compose (권장)
```bash
docker-compose up -d
```
접속: http://localhost:4000
### 시놀로지 NAS
자세한 설치 가이드: [SYNOLOGY_INSTALL.md](SYNOLOGY_INSTALL.md)
## 📋 요구사항
## 📖 추가 문서
- Docker & Docker Compose
- Python 3.11+
- PostgreSQL 15+
- [📚 종합 개발 가이드](COMPREHENSIVE_GUIDE.md) - 상세한 개발 가이드
- [🏠 시놀로지 설치](SYNOLOGY_INSTALL.md) - NAS 설치 방법
## 📖 자세한 가이드
## 🤝 기여하기
- [종합 개발 가이드](COMPREHENSIVE_GUIDE.md)
- [시놀로지 설치 가이드](SYNOLOGY_INSTALL.md)
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📄 라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
## 📞 문의
프로젝트 링크: [https://git.hyungi.net/hyungi/Todo-Project](https://git.hyungi.net/hyungi/Todo-Project)