자동으로 시간표를 생성해주는 웹 애플리케이션입니다.
- 수강할 과목 정보 입력
- 과목명, 교수명, 학점 등 기본 정보 입력
- 강의 시간 정보 추가
- 여러 분반에 대한 정보 입력 가능
- 가능한 모든 시간표 조합 생성
- 입력된 과목들의 모든 가능한 조합 계산
- 시간 중복 없는 유효한 시간표만 생성
- 시간표 평가 및 최적화된 결과 제공
- 공강 시간 최적화
- 아침/저녁 시간대 선호도 반영
- 생성된 시간표 이미지로 저장
- PNG 이미지 포맷으로 저장
-
과목 추가하기
- "과목 추가" 버튼을 클릭하여 새로운 과목 추가
- 과목명, 교수명, 학점 정보 입력
- "강의 추가" 버튼으로 해당 과목의 강의 시간 및 강의실 정보 입력
- 여러 분반이 있는 경우 추가 강의 정보 입력
-
시간표 생성하기
- 모든 과목 정보를 입력한 후 "시간표 생성" 버튼 클릭
- 시스템이 자동으로 가능한 모든 조합을 계산하고 최적화
-
결과 확인 및 저장
- 생성된 시간표들을 평가 점수 순으로 확인
- 마음에 드는 시간표 선택
- "이미지로 저장" 버튼을 통해 시간표 저장
- Bun 1.1.20 이상
# 패키지 설치
bun install
bun dev
브라우저에서 http://localhost:3000으로 접속하여 확인할 수 있습니다.
시간표 조합을 생성하는 API입니다.
type Subject = {
index: number;
title: string;
credit: number;
color: string;
lectures: {
index: number;
professor: string;
day: "월" | "화" | "수" | "목" | "금";
time: string; // 연속된 숫자, Subject의 credit과 길이가 같아야 합니다.
}[];
};
// Request Body: Subject[]
type Timetable = {
index: number;
combination: Subject[];
timetable: (Subject | null)[][];
};
// Response Body: Timetable[]
생성된 시간표를 평가하는 API입니다.
type Timetable = {
index: number;
combination: Subject[];
timetable: (Subject | null)[][];
};
// Request Body: Timetable[]
type EvaluatedTimetable = Timetable & {
score: number; // 공강 시간, 아침/저녁 시간대 등을 고려한 점수
tags: ("공강" | "오후")[];
};
// Response Body: EvaluatedTimetable[]
bun dev
: 개발 서버 실행bun build
: 프로덕션용 빌드bun start
: 프로덕션 서버 실행bun check
: 코드 검사 및 포매팅bun format
: 코드 포맷팅bun lint
: 린트 검사
MIT