산업안전 교육을 위한 기업용 대시보드입니다. React + Vite 기반 SPA로 교육 일정 관리, 수강생 등록, 진도/통계 조회, 사원 엑셀 업로드 등을 제공합니다. JWT 인증을 적용해 회사별 데이터 접근을 보호합니다.
- 대시보드: 분기별 프로그램, 수강 현황, 이수율 카드, 실시간 수강자 테이블
- 교육 일정 관리: 연도/분기별 교육 등록·수정·상태(예정/진행/완료) 관리
- 수강생 등록: 과정별 다중 등록, 행 추가/삭제, 입력 검증, 결과 메시지
- 진도 현황: 과정별 수강생 진도율과 평가 내역 조회
- 엑셀 업로드: 사원 데이터를 XLSX로 대량 업로드, 템플릿 다운로드 지원
- React 19, Vite, React Router
- TailwindCSS, FullCalendar
- Axios, XLSX, @tanstack/react-query
- ESLint
src/components: 레이아웃, ProtectedRoute 등 공통 컴포넌트src/pages: Home, Login, Schedule, Enrollments, CourseProgress, UploadExcelsrc/lib/auth.js: 로그인/로그아웃, 토큰 관리src/lib/http.js: API 통신 래퍼, 토큰 재발급/에러 처리public: 정적 파일 및 엑셀 템플릿
- 의존성 설치:
npm install - 개발 서버:
npm run dev - 접속:
http://localhost:5173 - 로그인: 사업자번호(10자리)와 비밀번호 입력
- JWT 기반 인증, 토큰 만료 시 자동 재발급 및 로그인 리다이렉트
apiFetch(src/lib/http.js)를 통한 공통 요청/에러/로딩 처리- 주요 엔드포인트 예시:
/courses/courses/: 교육 과정 목록/enrollments/?course={id}: 과정별 수강생/organizations/employees/bulk/: 사원 엑셀 업로드
- 백엔드 API 명세:
backendApi.md