# WIXON Blog

Flask 기반 블로그 애플리케이션입니다.

## 프로젝트 구조

```
wixon_blog/
├── app.py                      # Flask 메인 애플리케이션
├── templates/                  # Jinja2 템플릿
│   ├── base.html              # 기본 레이아웃
│   ├── index.html             # 메인 페이지
│   ├── login.html             # 로그인 페이지
│   ├── post.html              # 포스트 상세
│   ├── write.html             # 포스트 작성
│   ├── edit_post.html         # 포스트 수정
│   └── admin/                 # 관리자 페이지
│       ├── base_admin.html    # 관리자 베이스 템플릿
│       ├── dashboard.html     # 대시보드
│       ├── posts.html         # 포스트 관리
│       ├── post_detail.html   # 포스트 수정
│       ├── members.html       # 회원 목록
│       └── member_form.html   # 회원 추가/수정
├── static/
│   ├── css/
│   │   ├── style.css          # 메인 스타일
│   │   └── admin.css          # 관리자 스타일
│   ├── images/                # 이미지 파일
│   ├── font/                  # 웹 폰트
│   └── upload/img/            # 업로드 이미지
└── README.md
```

## 기술 스택

- **Backend**: Flask (Python)
- **Database**: MySQL
- **Frontend**: UIKit 3.6.16, jQuery, Summernote Editor
- **인증**: bcrypt 암호화, Session 기반

## 주요 기능

### 사용자 기능
- 블로그 포스트 조회
- 로그인/로그아웃
- 포스트 작성 (로그인 필요)
- 포스트 수정/삭제 (작성자 또는 관리자)

### 관리자 기능 (`/admin/`)
- **대시보드**: 통계 (총 포스트, 공개/비공개, 회원 수)
- **포스트 관리**: 목록, 검색, 필터링, 수정, 삭제, 복구
- **회원 관리**: 목록, 추가, 수정, 삭제, 비밀번호 재설정

## URL 구조

| URL | 설명 |
|-----|------|
| `/` | 메인 페이지 |
| `/login` | 로그인 |
| `/logout` | 로그아웃 |
| `/post/<id>` | 포스트 상세 |
| `/write` | 포스트 작성 |
| `/edit_post/<id>` | 포스트 수정 |
| `/admin/` | 관리자 대시보드 |
| `/admin/posts` | 포스트 관리 |
| `/admin/members` | 회원 관리 |

## 실행 방법

```bash
# 의존성 설치
pip install flask pymysql bcrypt beautifulsoup4 markupsafe

# 앱 실행
python3 app.py
```

서버가 `http://0.0.0.0:8899`에서 실행됩니다.

## 데이터베이스 테이블

### blog
| 컬럼 | 설명 |
|------|------|
| id | PK |
| user_id | 작성자 ID (FK) |
| title | 제목 |
| category | 카테고리 (IT, NEWS, ETC) |
| contents | 내용 (HTML) |
| thumbnail_img | 썸네일 URL |
| public_yn | 공개 여부 (Y/N) |
| use_yn | 사용 여부 (Y/N, 소프트 삭제) |
| add_date | 작성일 |

### member
| 컬럼 | 설명 |
|------|------|
| mb_idx | PK |
| mb_id | 로그인 ID |
| mb_passwd | 비밀번호 (bcrypt) |
| mb_name | 이름 |

## 관리자 계정

- 관리자 권한: `admin`, `wixon`, `javamon` 아이디 보유자

## 라이선스

WIXON Associates Inc.
