171 lines
5.2 KiB
Markdown
171 lines
5.2 KiB
Markdown
# 이단 탈퇴자 교리점검표 웹서비스
|
|
|
|
기독교대한감리회 신앙고백에 따른 이단 탈퇴자를 위한 교리점검표 설문 폼 서비스입니다.
|
|
|
|
## 주요 기능
|
|
|
|
1. **설문응답자 기본 정보 입력** - 이름, 생년월일, 연락처, 출신 이단, 재적 기간
|
|
2. **기독교대한감리회 신앙고백 교리 점검** - 삼위일체, 예수 그리스도, 성경, 구원 등
|
|
3. **이단 일반 교리 점검** - 추가 계시, 지도자 신격화, 구원관, 세계관
|
|
4. **출신 이단별 교리 점검** - 각 이단별 특정 교리 점검
|
|
5. **간증문 입력** - 탈퇴 과정과 소감 작성
|
|
6. **워드 문서 자동 생성** - 응답 내용을 워드 템플릿에 자동 입력
|
|
7. **구글 드라이브 자동 업로드** - 생성된 문서를 구글 드라이브에 업로드
|
|
|
|
## 설치 방법
|
|
|
|
### 1. 의존성 설치
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### 2. 환경 변수 설정
|
|
|
|
`.env` 파일을 생성하고 다음 내용을 입력하세요:
|
|
|
|
```env
|
|
SECRET_KEY=your-secret-key-here
|
|
ACCESS_KEY=your-access-key-here
|
|
GOOGLE_DRIVE_CREDENTIALS_FILE=credentials.json
|
|
GOOGLE_DRIVE_TOKEN_FILE=token.json
|
|
GOOGLE_DRIVE_FOLDER_ID=your-google-drive-folder-id
|
|
```
|
|
|
|
**인증키 설정:**
|
|
- `ACCESS_KEY`: 서비스 접근을 위한 인증키입니다.
|
|
- 기본값: `Kx9mP2vQ7nR4tY8wZ3bC6hJ1fL5dN0sA8uE2iM7o` (프로덕션에서는 반드시 변경하세요)
|
|
- 사용자는 이 인증키를 입력해야만 설문에 접근할 수 있습니다.
|
|
- `.env` 파일에서 `ACCESS_KEY`를 설정하면 기본값을 덮어씁니다.
|
|
|
|
### 3. 구글 드라이브 API 설정
|
|
|
|
1. [Google Cloud Console](https://console.cloud.google.com/)에서 프로젝트 생성
|
|
2. Google Drive API 활성화
|
|
3. OAuth 2.0 클라이언트 ID 생성 (데스크톱 애플리케이션)
|
|
4. `credentials.json` 파일을 프로젝트 루트에 저장
|
|
5. 구글 드라이브에 업로드할 폴더를 생성하고 폴더 ID를 `.env`에 설정
|
|
|
|
### 4. 워드 템플릿 준비 (선택사항)
|
|
|
|
`word_templates/` 디렉토리에 각 이단별 템플릿 파일을 준비할 수 있습니다:
|
|
- `신천지_template.docx`
|
|
- `구원파_template.docx`
|
|
- `하나님의교회_template.docx`
|
|
- `통일교_template.docx`
|
|
- `기타_template.docx`
|
|
- `default_template.docx` (기본 템플릿)
|
|
|
|
템플릿 파일이 없으면 자동으로 기본 템플릿이 생성됩니다.
|
|
|
|
## 실행 방법
|
|
|
|
```bash
|
|
python app.py
|
|
```
|
|
|
|
서버가 실행되면 브라우저에서 `http://localhost:5000`으로 접속하세요.
|
|
|
|
## 프로젝트 구조
|
|
|
|
```
|
|
.
|
|
├── app.py # Flask 메인 애플리케이션
|
|
├── config.py # 설정 파일
|
|
├── requirements.txt # Python 의존성
|
|
├── .env # 환경 변수 (생성 필요)
|
|
├── credentials.json # 구글 드라이브 인증 파일 (생성 필요)
|
|
├── token.json # 구글 드라이브 토큰 (자동 생성)
|
|
├── templates/ # HTML 템플릿
|
|
│ ├── base.html
|
|
│ ├── step1.html
|
|
│ ├── step2.html
|
|
│ ├── step3.html
|
|
│ ├── step4.html
|
|
│ ├── step5.html
|
|
│ └── complete.html
|
|
├── static/ # 정적 파일
|
|
│ ├── style.css
|
|
│ └── script.js
|
|
├── word_templates/ # 워드 템플릿 파일
|
|
├── output/ # 생성된 문서 저장 폴더 (자동 생성)
|
|
└── utils/ # 유틸리티 모듈
|
|
├── word_processor.py
|
|
└── google_drive.py
|
|
```
|
|
|
|
## 리눅스 서버 배포
|
|
|
|
### 1. Gunicorn 설치
|
|
|
|
```bash
|
|
pip install gunicorn
|
|
```
|
|
|
|
### 2. Gunicorn으로 실행
|
|
|
|
```bash
|
|
gunicorn -w 4 -b 0.0.0.0:5000 app:app
|
|
```
|
|
|
|
### 3. systemd 서비스로 등록 (선택사항)
|
|
|
|
`/etc/systemd/system/doctrine-check.service` 파일 생성:
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=Doctrine Check Web Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=your-user
|
|
WorkingDirectory=/path/to/doctrine-check
|
|
Environment="PATH=/path/to/venv/bin"
|
|
ExecStart=/path/to/venv/bin/gunicorn -w 4 -b 0.0.0.0:5000 app:app
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
서비스 시작:
|
|
|
|
```bash
|
|
sudo systemctl start doctrine-check
|
|
sudo systemctl enable doctrine-check
|
|
```
|
|
|
|
### 4. Nginx 리버스 프록시 설정 (선택사항)
|
|
|
|
```nginx
|
|
server {
|
|
listen 80;
|
|
server_name your-domain.com;
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:5000;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
}
|
|
}
|
|
```
|
|
|
|
## 주의사항
|
|
|
|
- 프로덕션 환경에서는 `SECRET_KEY`와 `ACCESS_KEY`를 안전하게 설정하세요
|
|
- 인증키는 링크를 받은 사람에게만 전달하세요
|
|
- 구글 드라이브 API 인증 정보는 절대 공개하지 마세요
|
|
- `output/` 디렉토리의 파일은 정기적으로 정리하세요
|
|
- HTTPS를 사용하여 데이터 보안을 강화하세요
|
|
|
|
## 인증키 관리
|
|
|
|
- 기본 인증키: `Kx9mP2vQ7nR4tY8wZ3bC6hJ1fL5dN0sA8uE2iM7o`
|
|
- 인증키는 `.env` 파일의 `ACCESS_KEY`로 변경할 수 있습니다
|
|
- 사용자는 서비스 접속 시 인증 페이지에서 인증키를 입력해야 합니다
|
|
- 인증 후 세션에 저장되며, 로그아웃 시 인증이 해제됩니다
|
|
|
|
## 라이선스
|
|
|
|
이 프로젝트는 기독교대한감리회를 위한 내부 사용 목적으로 제작되었습니다.
|
|
|