한국외국어대학교 서울/글로벌 캠퍼스의 강의 시간표 데이터를 바탕으로 빈 강의실을 빠르게 찾기 위한 웹 앱입니다. 현재 시간 기준 조회와 사용자 지정 시간대 조회를 지원하며, 강의실 주간 시간표와 교수님 시간표 검색 기능도 포함되어 있습니다.
배포 주소: https://3ae3ae.github.io/HUFS-empty-room/
- 현재 시각 기준으로 사용 가능한 빈 강의실 탐색
- 요일/시작 시각/종료 시각을 직접 지정해서 빈 강의실 조회
- 서울 캠퍼스와 글로벌 캠퍼스 간 전환
- 건물별 강의실 목록과 빈 시간 정보 확인
- 특정 강의실의 주간 시간표 검색
- 교수명 기준 시간표 조회 및 현재 수업 여부 확인
- 캠퍼스 지도 확대 보기
- React 19
- TypeScript
- Vite
- React Router
- Tailwind CSS 4
- Lucide React
src/
components/ 공통 UI 컴포넌트
pages/ 화면 단위 페이지
lib/ 데이터 로딩, 시간 계산, 유틸리티
data/ 캠퍼스별 강의 데이터 JSON
assets/ 캠퍼스 지도 이미지
핵심 파일:
src/pages/Home.tsx: 빈 강의실 탐색 메인 화면src/pages/Timetable.tsx: 강의실 주간 시간표 화면src/pages/ProfessorSearch.tsx: 교수 검색 화면src/lib/data.ts: 강의 데이터 파싱 및 인덱싱src/lib/campus.tsx: 캠퍼스 상태 관리
- Node.js 18 이상 권장
- npm
npm install
npm run dev기본 개발 서버 주소:
http://localhost:3000
npm run devVite 개발 서버를 3000 포트에서 실행합니다.
npm run build프로덕션 빌드를 생성합니다.
npm run preview빌드 결과물을 로컬에서 미리 확인합니다.
npm run lintTypeScript 타입 체크를 수행합니다.
npm run cleandist/ 디렉터리를 삭제합니다.
npm run deployGitHub Pages용 정적 빌드를 배포합니다.
- 강의 데이터는
src/data/subjects_seoul.json,src/data/subjects_global.json에서 불러옵니다. - 앱은 과목 시간표를 파싱해 강의실별, 교수별 인덱스를 생성합니다.
- 빈 강의실 판단은 해당 요일의 수업 시간 블록과 현재 또는 지정 시간대를 비교해 계산합니다.
- 캠퍼스 선택 상태는 브라우저
localStorage에 저장됩니다.
이 프로젝트는 GitHub Pages 배포를 기준으로 설정되어 있습니다.
vite.config.ts의base:/HUFS-empty-room/package.json의homepage:https://3ae3ae.github.io/HUFS-empty-room/
리포지토리 이름이나 배포 경로가 바뀌면 두 값을 함께 수정해야 합니다.
변경 후 최소한 아래 두 명령은 통과시키는 것을 권장합니다.
npm run lint
npm run build- 이 서비스는 개설 과목 시간표를 기준으로 빈 강의실을 추정합니다.
- 실제 수업 변경, 보강, 시험, 행사, 자율 사용 등은 반영되지 않을 수 있습니다.
- 실제 사용 전에는 현장 상황을 직접 확인하는 것이 안전합니다.