인증 (Auth)

기능 Method URL 접근 권한 설명
회원가입 POST /api/auth/register 🔓 누구나 이메일·비밀번호·학생정보·학교·학과 입력 후 신규 가입. 이메일 중복 시 409 반환
로그인 POST /api/auth/login 🔓 누구나 이메일·비밀번호 검증 후 JWT 발급, HttpOnly 쿠키에 저장
로그아웃 POST /api/auth/logout 🔐 로그인 필요 form POST 방식으로 쿠키 삭제 후 홈(/)으로 302 리다이렉트
내 정보 조회 GET /api/auth/me 🔐 로그인 필요 로그인 유저 정보 반환 (비밀번호 제외)

학교 (School)

기능 Method URL 접근 권한 설명
학교 목록 조회 GET /api/schools 🔓 누구나 is_active = TRUE 인 학교 목록 전체 반환 (회원가입 셀렉트박스용)
학과 목록 조회 GET /api/schools/{school_id}/departments 🔓 누구나 특정 학교의 is_active = TRUE 인 학과 목록 반환 (동적 로딩용)

공지 (Notice)

기능 Method URL 접근 권한 설명
공지 목록 조회 GET /api/notices 🔐 로그인 필요 로그인 유저의 school_id 기준 학교 공지(dept_id=NULL) + 내 학과 공지 반환. published_at 최신순 정렬
학과 공지 필터 GET /api/notices?dept=true 🔐 로그인 필요 내 학과 공지만 필터링하여 반환
공지 상세 조회 GET /api/notices/{notice_id} 🔐 로그인 필요 공지 원문·출처 URL·게시일 상세 반환. 타 학교 공지 접근 시 403 반환

챗봇 (Chat)

기능 Method URL 접근 권한 설명
질문 전송 POST /api/chat 🔐 로그인 필요 질문 입력 후 의도 분류 → RAG 파이프라인 실행
→ LLM 답변 반환. session_id 미전달 시 새 세션 자동 생성
세션 목록 조회 GET /api/chat/sessions 🔐 로그인 필요 로그인 유저의 채팅 세션 목록 최신순 반환
세션 상세 조회 GET /api/chat/sessions/{session_id} 🔐 로그인 필요 특정 세션의 메시지 목록 반환. 타인 세션 접근 시 404 반환
세션 삭제 DELETE /api/chat/sessions/{session_id} 🔐 로그인 필요 세션 소유권 검증 후 메시지 → 세션 순서로 삭제.
                                                타인 세션 삭제 시도 시 403 반환 |

화면 (Page)

기능 Method URL 접근 권한 설명
메인 페이지 GET / 🔓 누구나 랜딩 페이지 렌더링. 로그인 여부에 따라 CTA 버튼 동적 전환
로그인 페이지 GET /login 🔓 누구나 로그인 화면 렌더링. 로그인 상태면 /chat 으로 리다이렉트
회원가입 페이지 GET /register 🔓 누구나 회원가입 화면 렌더링. 로그인 상태면 /chat 으로 리다이렉트
공지 목록 페이지 GET /notices 🔐 로그인 필요 공지 목록 화면 렌더링. 비로그인 시 /login 으로 리다이렉트
채팅 페이지 GET /chat 🔐 로그인 필요 채팅 화면 렌더링. 비로그인 시 /login 으로 리다이렉트