Skip to content

jinee0us-github/random-seating-chart

Repository files navigation

🎲 랜덤 자리 배치 · Random Seating Chart

██████╗  █████╗ ███╗   ██╗██████╗  ██████╗ ███╗   ███╗
██╔══██╗██╔══██╗████╗  ██║██╔══██╗██╔═══██╗████╗ ████║
██████╔╝███████║██╔██╗ ██║██║  ██║██║   ██║██╔████╔██║
██╔══██╗██╔══██║██║╚██╗██║██║  ██║██║   ██║██║╚██╔╝██║
██║  ██║██║  ██║██║ ╚████║██████╔╝╚██████╔╝██║ ╚═╝ ██║
╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝╚═════╝  ╚═════╝ ╚═╝     ╚═╝
                                                      
███████╗███████╗ █████╗ ████████╗██╗███╗   ██╗ ██████╗ 
██╔════╝██╔════╝██╔══██╗╚══██╔══╝██║████╗  ██║██╔════╝ 
███████╗█████╗  ███████║   ██║   ██║██╔██╗ ██║██║  ███╗
╚════██║██╔══╝  ██╔══██║   ██║   ██║██║╚██╗██║██║   ██║
███████║███████╗██║  ██║   ██║   ██║██║ ╚████║╚██████╔╝
╚══════╝╚══════╝╚═╝  ╚═╝   ╚═╝   ╚═╝╚═╝  ╚═══╝ ╚═════╝ 
                                     
 ██████╗██╗  ██╗ █████╗ ██████╗ ████████╗
██╔════╝██║  ██║██╔══██╗██╔══██╗╚══██╔══╝
██║     ███████║███████║██████╔╝   ██║   
██║     ██╔══██║██╔══██║██╔══██╗   ██║   
╚██████╗██║  ██║██║  ██║██║  ██║   ██║   
 ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝   ╚═╝   
                                         

                 ╔═══════════════════════════════════╗
                 ║  ==  B O A R D  /  WHITEBOARD  == ║
                 ╚═══════════════════════════════════╝

                    A         B         C         D   
                 ╔═════╗   ╔═════╗   ╔═════╗   ╔═════╗
              1  ║ ███ ║   ║ ███ ║   ║ ███ ║   ║ ███ ║
                 ╚═════╝   ╚═════╝   ╚═════╝   ╚═════╝
                 ╔═════╗   ╔═════╗   ╔═════╗   ╔═════╗
              2  ║ ███ ║   ║ ███ ║   ║ ███ ║   ║ ███ ║
                 ╚═════╝   ╚═════╝   ╚═════╝   ╚═════╝
                 ╔═════╗   ╔═════╗   ╔═════╗   ╔═════╗
              3  ║ ███ ║   ║ ░░░ ║   ║ ███ ║   ║ ███ ║   ░ = 빈칸 / 통로
                 ╚═════╝   ╚═════╝   ╚═════╝   ╚═════╝

        random  ·  fair        v1.0

▌ 주요 기능

  • 🎲 공정한 랜덤 배치 — 규칙을 만족하는 자리 배치를 무작위로 탐색
  • 🪑 자유로운 좌석 배열 — 열·행 조절, 클릭/드래그로 좌석↔빈칸(통로) 편집
  • 👬 짝꿍 묶기 + 중복 방지 — 묶은 짝이 최근 N회 안에 반복되지 않게
  • 📌 고정석 — 특정 학생을 특정 자리에 고정 (히스토리·짝꿍 규칙 예외)
  • 분리(떨어뜨리기) — 지정한 학생들이 좌우·앞뒤로 인접하지 않게 배치
  • 🧑‍🤝‍🧑 남학생 전용석 — 특정 자리를 남학생 전용으로 지정
  • 🔄 수동 자리 교환 — 배치 결과에서 두 자리를 탭으로 맞바꿈 (저장 전)
  • 🎰 추첨 연출 애니메이션 — 이름이 슬롯처럼 돌다 확정 (끄기 가능 · 동작 줄이기 존중)
  • 📜 회차 히스토리 — 회차별 기록·스냅샷, 같은 자리 재배정 금지
  • 📊 엑셀 입출력 — 명단 가져오기 / 히스토리 내보내기·불러오기
  • 🖼️ 이미지·인쇄 출력 — 게시용 PNG 저장 / 인쇄
  • 🌗 라이트·다크 테마 — 시스템 설정 따름 + 수동 전환
  • 🎨 성별 색상 구분 — 남(시안)·여(주황)을 배경색으로 한눈에 구분
  • 💾 자동 저장 — 모든 설정·기록을 localStorage에 저장 (새로고침 유지)

▌ 사용법

상단 탭: 🎲 배치 · ⚙️ 관리자 설정 · 📐 규칙 설정 · 📜 히스토리

  ❯ ⚙️  관리자 설정
       1. 명단 입력 (직접 입력: 콤마·줄바꿈·공백으로 구분 / 또는 [엑셀로 명단 불러오기])
       2. 좌석 배열: 열·행 개수 설정 (숫자 · +/− · 격자 가장자리 +)
            ① 좌석 ↔ 빈칸 : 클릭/드래그로 좌석·통로 만들기
            ② 남학생 전용  : 전용석 지정
            ③ 짝꿍 선택    : 드래그로 자리 묶고 [묶기]
            ④ 고정석      : 좌석 클릭 → 학생 선택해 그 자리에 고정
       3. 분리(떨어뜨리기): 학생 2명 이상 선택 → [분리 묶기] (좌우·앞뒤로 안 붙음)
       4. [설정 적용]   ← 명단/구조를 바꿔도 히스토리는 유지됨

  ❯ 📐  규칙 설정   (다음 배치부터 즉시 반영 · 히스토리 유지)
       · 짝꿍 중복 방지 회차 (0 = 끄기)      · 같은 자리 재배정 금지 (on/off)
       · 남학생 전용석 히스토리 예외 (on/off) · 배치 시도 횟수
       · 추첨 연출 애니메이션 (on/off)

  ❯ 🎲  배치
       [🎲 랜덤 배치] → [💾 저장하기]
       [🔄 자리 바꾸기] 로 두 자리 맞바꾸기 (저장 전, 두 좌석 탭)
       [🖼️ 이미지 저장] · [🖨️ 인쇄] 로 게시용 출력

  ❯ 📜  히스토리
       회차별 기록 · 🗑 회차 삭제 / 전체 삭제
       [⬇️ 엑셀 내보내기] / [⬆️ 엑셀 불러오기]

  ☀️ / 🌙   우측 상단 버튼으로 라이트·다크 테마 전환

▌ 엑셀 명단 양식

엑셀(.xlsx) 첫 시트에 이름, 성별 두 열이면 됩니다. 성별은 남/여 또는 M/F 모두 인식합니다. 관리자 설정의 [⬇️ 명단 양식 받기] 로 빈 양식(.xlsx)을 받아 쓰면 편해요.

┌────────┬────────┐
│  이름   │  성별   │   ← 첫 행: 머리글
├────────┼────────┤
│  김민준  │   남    │
│  이준호  │   남    │
│  이서연  │   여    │
│  김지우  │   여    │
└────────┴────────┘

머리글이 없으면 1열=이름, 2열=성별로 인식해요. 불러온 뒤 [설정 적용] 을 눌러주세요.

▌ 데이터 저장 / 주의

+ 명단·좌석·짝꿍·고정석·분리·규칙·히스토리는 브라우저(localStorage)에 자동 저장 → 새로고침해도 유지
! 저장은 '기기·브라우저별' — 다른 기기와 공유되지 않음
! 여러 기기에서 같은 기록을 쓰려면 엑셀 내보내기/불러오기 사용
- 초기화: [기본값 불러오기] 클릭 / 브라우저 데이터 삭제 / 시크릿 모드
        ╔══════════════════════════════════════════╗
        ║   made for fair seating   ·   enjoy :)   ║
        ╚══════════════════════════════════════════╝

About

교실 랜덤 자리 배치·자리 뽑기 웹앱 — 짝꿍 중복 방지, 남녀 구분, 고정석, 히스토리 지원

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors