Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

devwontory/auto-table

Repository files navigation

Auto Table

자동으로 시간표를 생성해주는 웹 애플리케이션입니다.

주요 기능

  • 수강할 과목 정보 입력
    • 과목명, 교수명, 학점 등 기본 정보 입력
    • 강의 시간 정보 추가
    • 여러 분반에 대한 정보 입력 가능
  • 가능한 모든 시간표 조합 생성
    • 입력된 과목들의 모든 가능한 조합 계산
    • 시간 중복 없는 유효한 시간표만 생성
  • 시간표 평가 및 최적화된 결과 제공
    • 공강 시간 최적화
    • 아침/저녁 시간대 선호도 반영
  • 생성된 시간표 이미지로 저장
    • PNG 이미지 포맷으로 저장

사용 방법

  1. 과목 추가하기

    • "과목 추가" 버튼을 클릭하여 새로운 과목 추가
    • 과목명, 교수명, 학점 정보 입력
    • "강의 추가" 버튼으로 해당 과목의 강의 시간 및 강의실 정보 입력
    • 여러 분반이 있는 경우 추가 강의 정보 입력
  2. 시간표 생성하기

    • 모든 과목 정보를 입력한 후 "시간표 생성" 버튼 클릭
    • 시스템이 자동으로 가능한 모든 조합을 계산하고 최적화
  3. 결과 확인 및 저장

    • 생성된 시간표들을 평가 점수 순으로 확인
    • 마음에 드는 시간표 선택
    • "이미지로 저장" 버튼을 통해 시간표 저장

기술 스택

Next.js TypeScript TailwindCSS daisyUI Jotai React Hook Form Zod

코드 품질

Biome Husky Commitlint

시작하기

필수 조건

  • Bun 1.1.20 이상

설치

# 패키지 설치
bun install

개발 서버 실행

bun dev

브라우저에서 http://localhost:3000으로 접속하여 확인할 수 있습니다.

API

POST /api/combine

시간표 조합을 생성하는 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[]

POST /api/evaluate

생성된 시간표를 평가하는 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

About

Automatic Timetable Generator

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /