Skip to content

Repository files navigation

용정 만남의날 시간표 편성 사이트

용정 만남의날 운영을 위한 시간표 편성 사이트입니다.

졸업생 강의 정보를 등록하고, 재학생 희망 강의를 바탕으로 1~3교시 배정을 정리할 수 있습니다.
또한 배정 결과를 재학생 기준과 졸업생 기준으로 나누어 조회할 수 있어, 행사 운영 전 확인과 현장 점검에 맞게 사용할 수 있습니다.

프로젝트 목적

이 사이트는 만남의날 행사에서 아래 작업을 더 쉽게 하기 위해 만들어졌습니다.

  • 졸업생 강의 목록 정리
  • 교시별 운영 가능 여부와 최대 수용 인원 입력
  • 재학생 희망 강의 목록 업로드
  • 재학생 배정 결과 확인
  • 졸업생별 교시 명단 확인
  • 여러 기기에서 같은 데이터 공유

주요 기능

  • 강의 입력

    • 졸업생 이름 등록
    • 수업 불가능한 교시 설정
    • 교시별 최대 수용 인원 입력
  • 재학생 배정

    • CSV 업로드
    • 이름, 학년, 반, 희망 강의 수정
    • 배정 실행
  • 결과 조회

    • 재학생 기준 시간표 조회
    • 졸업생 기준 명단 조회
  • 데이터 저장

    • Firebase 연동 시 강의, 학생, 배정 결과 저장
    • 새로고침 후에도 데이터 복구 가능

사이트 맵

1. 조회 페이지

누구나 바로 볼 수 있는 화면입니다.

1-1. 재학생 기준 배정 보기

  • 학급별 학생 목록 확인
  • 각 학생의 1교시, 2교시, 3교시 배정 결과 확인

1-2. 졸업생 기준 배정 보기

  • 졸업생별 강의 카드 확인
  • 1교시, 2교시, 3교시 명단 확인
  • 수업불가 교시 확인
  • 교시별 배정 인원 / 수용 인원 확인
  • 수용 인원 초과 시 경고 표시 확인

2. 관리자 페이지

비밀번호를 입력해야 사용할 수 있는 화면입니다.

2-1. 강의 입력

  • 졸업생 강의 추가
  • 교시별 최대 인원 설정
  • 수업 불가능 교시 설정
  • 등록된 강의 목록 확인

2-2. 재학생 배정

  • CSV 파일 업로드
  • 재학생 정보 직접 수정
  • 배정 실행
  • 결과 CSV 다운로드

CSV 입력 형식

재학생 업로드 파일은 아래 헤더를 사용합니다.

이름,학년,반,1순위,2순위,3순위

입력 규칙

  • 1순위, 2순위, 3순위는 교시가 아니라 학생이 선택한 3개의 강의입니다.
  • 강의 번호 또는 졸업생 이름으로 입력할 수 있습니다.
  • 현재 예시 CSV는 숫자 형식 기준으로 맞춰져 있습니다.

예시 파일:

배정 결과 안내

  • 학생은 1~3교시에 배정됩니다.
  • 같은 강의 안에서는 가능한 한 여러 학년이 고르게 섞이도록 배정합니다.
  • 수용 인원을 초과하더라도 배정은 먼저 진행하고, 초과 여부는 경고로 표시합니다.
  • 수용인원 초과는 강의 전체가 아니라 교시별 기준으로 표시합니다.

예시:

1교시 4/4명
2교시 6/4명
3교시 수업불가

Firebase 저장

Firebase를 연결하면 아래 데이터가 저장됩니다.

  • 강의 목록
  • 재학생 목록
  • 배정 결과

저장 위치:

  • Firestore meetday/state

이 기능을 사용하면 여러 기기에서 같은 배정 데이터를 함께 확인할 수 있습니다.

관리자 비밀번호 안내

현재 관리자 페이지는 비밀번호 방식으로 구분되어 있습니다.

이 프로젝트에서는 관리자 비밀번호를 프론트엔드에서 읽는 값으로 사용하고 있으며, 현재 방식은 하드코딩 기반 설정입니다.
즉, 사용 편의를 위한 잠금 기능으로는 쓸 수 있지만, 완전한 보안 방식은 아닙니다.

운영상 더 강한 보호가 필요하면 아래 방식으로 확장하는 것이 적절합니다.

  • Firebase Authentication
  • 서버 또는 Cloud Functions를 통한 관리자 검증

포함 파일

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages