멤버 업데이트 가이드라인¶
현재 members.uwksa.ca의 운영 방식은 SQLite + /manage 관리자 화면 + Git 기반 코드 수정입니다. 과거의 members.txt / add-member.sh 중심 절차는 현재 소스 트리 기준으로 더 이상 기본 운영 흐름이 아닙니다.
사전 준비¶
- Git
- Python
- GitHub 권한
- 운영자 작업이 필요하면
/manage접근 권한 (MANAGE_ALLOWED_USERNAMES)
작업 유형 먼저 구분하기¶
| 작업 유형 | 현재 방식 |
|---|---|
| 템플릿 / 로직 / 설정 수정 | 저장소에서 파일 수정 후 Git으로 반영 |
| 멤버 승인 / 상태 변경 | /manage |
| WatCard 이미지 교체 | /manage 또는 static/images/WATCards/ 관리 |
| DB 구조 확인 | docs/DB_SCHEMA.md |
| signup on/off | SIGNUP_UNAVAILABLE 환경 변수 |
1단계: 코드 저장소 준비¶
git clone https://github.com/therealuwksatech/members.uwksa.ca.git
cd members.uwksa.ca
git pull origin main
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
로컬에서 앱을 띄워 확인하려면:
python wsgi.py
2단계: 수정할 파일 찾기¶
| 수정 대상 | 파일 |
|---|---|
| 로그인 / QR / signup / manage 로직 | membership.py |
| 환경 변수 기본값 | config.py |
| 결제 알림 메일 | mailer.py |
| 리마인드 메일 | membershipMailer.py |
| 좌석 확인 API | seat_check.py |
| 템플릿 | templates/*.html |
| 정적 자원 | static/* |
3단계: 현재 멤버 데이터 구조 이해¶
현재 기준 데이터 저장소는 SQLite입니다.
- 기본 DB:
database/W26.db - 사용자 테이블:
users - signup 기록:
signup_submissions - photo validation 기록:
signup_photo_validations
스키마는 docs/DB_SCHEMA.md를 기준으로 확인합니다.
4단계: 운영자 작업은 /manage에서 처리¶
현재 /manage에서 가능한 대표 작업:
- pending signup 확인
- confirmed 상태 변경
- 사용자 생성
- 사용자 이름 / 멤버 여부 수정
- WatCard 이미지 업로드 / 교체
- 사용자 및 관련 signup 기록 삭제
단순 멤버 추가/삭제를 위해 별도의 members.txt를 수정하거나 add-member.sh를 실행하는 방식은 현재 기본 절차가 아닙니다.
5단계: signup / 사진 검증 관련 확인 포인트¶
현재 signup 사진 처리는 다음 흐름을 따릅니다.
/signup/photo-validate호출- Roboflow 워크플로우로 감지 수행
- validation token 생성
- 승인된 이미지를 signup 기록과 WatCard 이미지 경로에 반영
관련 환경 변수:
ROBOFLOW_API_KEYROBOFLOW_WORKFLOW_URLROBOFLOW_PROMPTROBOFLOW_CONFIDENCE_THRESHOLDSIGNUP_VALIDATION_TTL_SEC
6단계: 변경 사항 검토 및 저장¶
git status
git diff
git add <수정한 파일>
git commit -m "변경 설명"
git push origin <브랜치명>
운영 환경 재시작이나 배포 절차는 이 저장소 밖에서 관리될 수 있으므로, 현재 인프라 기준은 운영 담당자 문서를 따릅니다.
자주 확인하는 환경 변수¶
- 인증 / 세션:
SECRET_KEY,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET,OIDC_DISCOVERY_URL,OIDC_REDIRECT_URI - DB / 파일 경로:
DATABASE,SIGNUP_TEST_DATABASE,WATCARD_UPLOAD_DIR - signup 제어:
SIGNUP_UNAVAILABLE - 운영자 권한:
MANAGE_ALLOWED_USERNAMES - 메일:
RESEND_API_KEY,RESEND_FROM_EMAIL - 좌석 확인:
SEATCHECK_GOOGLE_SERVICE_ACCOUNT_JSON,SEATCHECK_GOOGLE_SPREADSHEET_ID,SEATCHECK_GOOGLE_SHEET_NAME
참고¶
과거의 members.txt / SSH / 스크립트 중심 수동 절차는 레거시 문서에만 남겨 두고, 현재 운영 기준으로는 사용하지 않습니다.