오늘 한 일
시간표 생성 페이지
- 시간표 그리드와 학생 부담 패널 표 너비 맞추기
데이터 로드 방식 개선이 필요하다.
- 사용자가 직접 그리드에 과목을 배치할 때 과목 배치 가능성을 따지는 것은 프론트엔드
- 자동생성을 눌렀을 때 제약 조건을 추가하는 것은 백엔드에서 데이터를 읽고 있다.
- 한 프로젝트에서 동일한 JSON 데이터 파일을 두 가지 방식으로 로드하고 있다.
- 프론트엔드에서는 JavaScript fetch API로 파일을 직접 읽어온다.
- 브라우저에서 바로 처리하므로 단순하고 빠르지만, 교사나 학생 정보 같은 민감 데이터가 포함되어 있어서 위험 요소가 될 가능성이 있다.
- 백엔드에서는 Python DataLoader 클래스를 통해 같은 파일들을 로드한다.
- 같은 기능을 하는 중복 로직이 있다.
- 느려지더라도 백엔드 중심 API로 개선해야할까?
앞으로 할 것
- 프론트엔드 데이터 로드 방식 백엔드 중심 API로 바꾸기
- 자동 생성 기능 개선(추가된 조건들 반영)
- 자동 생성 기능 개선(OR-Tools 모델에 데이터 전처리(휴리스틱)해서 품질 향상)
- 자동 생성 기능 개선(일부 과목 미리 배치된 경우 반영하기)
- 시간표 생성 페이지에 자동생성 기능 연동
- 자동 생성 후 편집할 수 있게
- 드래그 앤 드롭으로 사용자가 배치한 시간표 데이터 저장하기
- 기존에 있던 자동생성과 신규 페이지 통합
- 시간표 생성 페이지 접속 시 필수 설정 안했으면 메세지 후 리디렉트
- 각종 조건의 출력 데이터 형식 일원화하기
- 듣기평가 커스텀시 시간표 생성에 반영되지 않는 문제 해결하기
- 선택 설정들 기본 값은 빈 값으로 바꾸고, 사용자가 원하면 필수 설정에서 자동 생성하는 기능, 추가로 편집할 수 있는 기능
- 학생 충돌 추가시 2개 말고 n개를 동시에 충돌로 입력할 수 있게 하기
- 특정 과목 불가한 슬롯 설정 기능 추가하기
- 과목 정보 넣으면 반영해서 듣기평가 충돌, 교사 충돌 자동으로 넣을 지, 수동이 편할 지 고민
- 목적 함수 작동 방식 바꾸기(가중치 없이 합 -> 우선 순위 방식)
- 시험 시간표 작성 시 고려 사항 우선순위 사용자 지정 기능 추가하기
- 시험 시간표를 사용자가 원하는대로 수정하는 기능 추가하기
- 시험 장소 배치 시 듣기 평가 한 층 따로 쓰게 하는 옵션
- 시험 감독 자동 배정 기능 추가하기