프로젝트 소개

WATcalendars는 매일 군사기술대학교 8개 학부의 웹사이트를 방문하여 게시된 수업 일정을 파싱하고 iCalendar(.ics) 형식으로 저장하는 프로젝트입니다. 이를 통해 학생들은 Apple Calendar, Google, Outlook 또는 Thunderbird에서 일정을 구독하고 항상 최신 상태로 유지할 수 있습니다. 학생의 경우: watcalendars.byst.re를 방문하여 그룹 코드를 입력하고 "Add to calendar"를 클릭하면 됩니다. 사이트는 학부별 그룹 탐색 기능도 제공합니다. 개발자의 경우: 프로젝트는 Python(3.9+ 필요)으로 작성되었습니다. pip 및 방화벽 뒤에 있는 학부를 위한 Playwright(Firefox/Chromium)를 통해 설치할 수 있습니다. `watcal` 명령은 목록 표시, 선택한 학부 실행, 그룹 감지, 달력 생성, 직원 목록 및 인덱스 재구축을 지원합니다. 디버깅 옵션, 학기 강제 지정 및 파일 로깅도 사용할 수 있습니다. 아키텍처는 학부별 모듈이 있는 공통 파이프라인(가져오기, 파싱, 저장)을 기반으로 합니다. 새 학부를 추가하려면 사양 파일 하나와 등록만 하면 됩니다. 데이터는 다양한 소스에서 가져옵니다: WCY 및 WIM은 HTTP, 나머지는 브라우저(Imperva 뒤의 Plansoft), WIG는 .docx 파일을 사용합니다. 프로젝트는 공개 USOS API를 사용하지만 일정이 비어 있어 스크래핑이 필요합니다. 사이트는 GitHub Pages에서 제공되며 .ics 파일도 같은 주소에서 사용할 수 있습니다. 자동화는 GitHub Actions를 통해 매일 UTC 자정에 실행됩니다. 테스트(79개)는 사양 정확성을 다룹니다. MIT 라이선스.