용정 만남의날 운영을 위한 시간표 편성 사이트입니다.
졸업생 강의 정보를 등록하고, 재학생 희망 강의를 바탕으로 1~3교시 배정을 정리할 수 있습니다.
또한 배정 결과를 재학생 기준과 졸업생 기준으로 나누어 조회할 수 있어, 행사 운영 전 확인과 현장 점검에 맞게 사용할 수 있습니다.
이 사이트는 만남의날 행사에서 아래 작업을 더 쉽게 하기 위해 만들어졌습니다.
- 졸업생 강의 목록 정리
- 교시별 운영 가능 여부와 최대 수용 인원 입력
- 재학생 희망 강의 목록 업로드
- 재학생 배정 결과 확인
- 졸업생별 교시 명단 확인
- 여러 기기에서 같은 데이터 공유
-
강의 입력
- 졸업생 이름 등록
- 수업 불가능한 교시 설정
- 교시별 최대 수용 인원 입력
-
재학생 배정
- CSV 업로드
- 이름, 학년, 반, 희망 강의 수정
- 배정 실행
-
결과 조회
- 재학생 기준 시간표 조회
- 졸업생 기준 명단 조회
-
데이터 저장
- Firebase 연동 시 강의, 학생, 배정 결과 저장
- 새로고침 후에도 데이터 복구 가능
누구나 바로 볼 수 있는 화면입니다.
- 학급별 학생 목록 확인
- 각 학생의 1교시, 2교시, 3교시 배정 결과 확인
- 졸업생별 강의 카드 확인
- 1교시, 2교시, 3교시 명단 확인
수업불가교시 확인- 교시별
배정 인원 / 수용 인원확인 - 수용 인원 초과 시 경고 표시 확인
비밀번호를 입력해야 사용할 수 있는 화면입니다.
- 졸업생 강의 추가
- 교시별 최대 인원 설정
- 수업 불가능 교시 설정
- 등록된 강의 목록 확인
- CSV 파일 업로드
- 재학생 정보 직접 수정
- 배정 실행
- 결과 CSV 다운로드
재학생 업로드 파일은 아래 헤더를 사용합니다.
이름,학년,반,1순위,2순위,3순위1순위, 2순위, 3순위는 교시가 아니라 학생이 선택한 3개의 강의입니다.- 강의 번호 또는 졸업생 이름으로 입력할 수 있습니다.
- 현재 예시 CSV는 숫자 형식 기준으로 맞춰져 있습니다.
예시 파일:
- 학생은 1~3교시에 배정됩니다.
- 같은 강의 안에서는 가능한 한 여러 학년이 고르게 섞이도록 배정합니다.
- 수용 인원을 초과하더라도 배정은 먼저 진행하고, 초과 여부는 경고로 표시합니다.
수용인원 초과는 강의 전체가 아니라 교시별 기준으로 표시합니다.
예시:
1교시 4/4명
2교시 6/4명
3교시 수업불가Firebase를 연결하면 아래 데이터가 저장됩니다.
- 강의 목록
- 재학생 목록
- 배정 결과
저장 위치:
- Firestore
meetday/state
이 기능을 사용하면 여러 기기에서 같은 배정 데이터를 함께 확인할 수 있습니다.
현재 관리자 페이지는 비밀번호 방식으로 구분되어 있습니다.
이 프로젝트에서는 관리자 비밀번호를 프론트엔드에서 읽는 값으로 사용하고 있으며, 현재 방식은 하드코딩 기반 설정입니다.
즉, 사용 편의를 위한 잠금 기능으로는 쓸 수 있지만, 완전한 보안 방식은 아닙니다.
운영상 더 강한 보호가 필요하면 아래 방식으로 확장하는 것이 적절합니다.
- Firebase Authentication
- 서버 또는 Cloud Functions를 통한 관리자 검증