Initial commit: IT센터 출입자관리시스템 (ACS)

방문자 사전신청·승인, 입·출입 체크인/아웃, QR 배지, 재실현황,
블랙리스트, 대시보드 통계, 방문 리포트(엑셀)까지 7단계 전 기능 구현.

- backend: Spring Boot 3.4.5 / Java 21 (JDK 26 빌드), 세션 인증, JPA, H2/PostgreSQL, POI, ZXing, Flyway
- frontend: React 19 / Vite 6 / TypeScript
- infra: Docker Compose (db·app·web nginx), Flyway V1__init, Python 사용자 시드
- docs: 워크플로우 / 시퀀스 다이어그램(Mermaid) / 이슈·유의사항

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
unknown
2026-07-03 08:59:41 +09:00
commit f0c30d8005
130 changed files with 8884 additions and 0 deletions

53
backend/test-api.http Normal file
View File

@@ -0,0 +1,53 @@
### IT센터 출입자관리시스템 — API smoke test
### 세션 쿠키 기반. 로그인 후 같은 클라이언트로 호출하세요.
@base = http://localhost:8080
### 1) 로그인 (호스트)
POST {{base}}/api/auth/login
Content-Type: application/json
{ "username": "host", "password": "ChangeMe123!" }
### 2) 현재 사용자
GET {{base}}/api/auth/me
### 3) 출입 구역 목록
GET {{base}}/api/zones
### 4) 방문 사전 신청
POST {{base}}/api/visit-requests
Content-Type: application/json
{
"visitorName": "김방문",
"company": "ACME",
"contact": "010-1234-5678",
"zoneId": 1,
"purpose": "정기 미팅",
"visitFrom": "2026-07-01T10:00",
"visitTo": "2026-07-01T12:00"
}
### 5) 방문 신청 목록
GET {{base}}/api/visit-requests
### 6) 승인 대기 목록
GET {{base}}/api/visit-requests/pending
### 7) 로그인 (관리자) — 승인 권한
POST {{base}}/api/auth/login
Content-Type: application/json
{ "username": "admin", "password": "ChangeMe123!" }
### 8) 승인 (qrToken 발급됨)
POST {{base}}/api/approvals/1/approve
Content-Type: application/json
{ "comment": "확인 완료" }
### 9) 반려
POST {{base}}/api/approvals/2/reject
Content-Type: application/json
{ "comment": "방문 목적 불명확" }