# EV 충전기 AS 관리 시스템 ## 프로젝트 개요 전기차 충전기 고장 신고 및 AS 관리 시스템. cs.byunc.com 으로 운영 중. 5825u Debian 서버, Docker Compose. ## 기술 스택 - Backend: Python FastAPI (포트 8000 내부) - DB: PostgreSQL (evuser / evcharger) - Frontend: 순수 HTML/CSS/JS (Nginx 정적 서빙) - Reverse Proxy: Nginx (포트 5700 노출) - Container: Docker Compose ## 폴더 구조 ev-charger-as/ ├── docker-compose.yml ├── .env ← git 제외 (SECRET_KEY, DB 비번) ├── nginx/nginx.conf ├── backend/ │ ├── main.py ← FastAPI 앱 진입점 │ ├── models.py ← SQLAlchemy ORM │ ├── auth.py ← bcrypt 직접 사용 (passlib 충돌 이슈 있었음) │ ├── database.py │ ├── utils.py ← QR생성, 파일저장 │ ├── init_db.sql ← 최초 DB 스키마 + 기본데이터 │ └── routers/ │ ├── auth_router.py │ ├── chargers.py ← 충전기 + 충전기종류 CRUD │ ├── reports.py ← AS 신고 (공개 엔드포인트 포함) │ ├── repairs.py ← 정비사 조치 │ ├── costs.py ← 출장비 관리 │ ├── improvements.py ← 개선항목 │ ├── accounts.py ← 계정 관리 │ ├── settings.py ← 시스템설정 + 이미지압축설정 │ └── export.py ← 엑셀 다운로드 └── frontend/static/ ├── css/style.css ├── js/ │ ├── api.js ← fetch 래퍼 (download 함수 포함) │ ├── auth.js ← JWT 로컬스토리지 관리 │ └── imageCompress.js ← Canvas API 이미지 압축 └── pages/ ├── login.html ├── report.html ← QR 신고 페이지 (공개, 현황 표시 포함) ├── admin/ │ ├── dashboard.html │ ├── reports.html │ ├── report-detail.html ← 출장비 요약+수정 폼 │ ├── costs.html │ ├── improvements.html │ ├── improvement-detail.html │ ├── chargers.html │ ├── charger-types.html ← 수정 기능 포함 │ ├── qr.html │ ├── accounts.html │ └── settings.html ← 이미지압축 설정 포함 ├── mechanic/ │ ├── dashboard.html │ ├── repair.html ← 다중사진 + 이미지압축 │ └── scan.html └── manufacturer/ ├── dashboard.html └── improvement.html ## 사용자 역할 - 일반 사용자: QR 스캔 신고 (로그인 불필요) - 정비사 (mechanic): 조치 입력, 중복신고 처리 - 제조사 (manufacturer): 개선항목 열람·업데이트 - 관리자 (admin): 전체 관리 ## 주요 개발 원칙 - Frontend HTML 수정 → Docker 재시작 불필요 (nginx 정적 서빙) - Backend Python 수정 → docker compose build backend && docker compose up -d --no-deps backend - bcrypt: passlib 충돌로 bcrypt 라이브러리 직접 사용 (auth.py 참고) - 한글 파일명 엑셀: urllib.parse.quote() 로 URL 인코딩 필수 - 이미지 압축: 브라우저 Canvas API (imageCompress.js), 설정은 /api/settings/public ## DB 주요 테이블 charger_types, chargers, users, reports, report_photos, repairs, repair_reports, repair_photos, repair_costs, improvements, improvement_reports, improvement_attachments, improvement_logs, system_settings ## 현재 운영 환경 - 서버: root@debian5825u ~/cs_charger/ev-charger-as - 접속: https://cs.byunc.com - 내부포트: 5700 - Gitea: gitea.byunc.com - 백업: ~/backups/ (매일 새벽 3시 크론)