← 허브로
Operation Guide
운영 설명서
군위몰입영어 시스템 v3.0
티치포퓨처 AI코딩연구소 제작
시스템 구조

Cloudflare D1 (서버리스 SQLite) 데이터베이스 위에서 동작하며, 허브와 4개 앱(성적 관리·출결 관리·강사 포털·관리자)으로 구성됩니다. 모든 앱은 같은 DB를 공유하므로 한 곳에서 입력한 데이터가 즉시 다른 앱에 반영됩니다.

🏠
허브
앱 진입 화면. 원하는 앱을 새 탭으로 엽니다.
💯
성적 관리
토플 시각화·토플 주니어·정기평가·단어시험. 별도 앱.
🧑‍🎓
출결 관리
출결분석·출석체크·출결관리·학생등록·반 관리(학생 배정).
👩‍🏫
강사 포털
공지·근무일지·결석사유·상담일지. 강사별 로그인.
🛠️
관리자
강사 관리·강사 등록·담당반(반) 개설·🎓 진급·비번 관리·DB 백업/복원.
운영 순서: 강사 등록(관리자)반 개설(관리자)학생 등록(출결앱)·반 배정(담임)출결·성적·상담 기록 → 매년 2월 진급(관리자).
주요 메뉴 & 기능
1
강사 등록  관리자 앱
경로: 관리자 앱 → 👨‍🏫 강사 관리 → + 강사 등록
필수: 이름 · 상태(재직중)   선택: 연락처·과목·담당반 등
강사를 먼저 등록해야 반·학생·성적·일지에서 담당 강사로 지정할 수 있습니다.
강사 첫 로그인 시 포털 비밀번호를 변경합니다(초기값 1234).
2
반 개설 & 진급  관리자 앱
경로: 관리자 앱 → 🏫 담당반 관리 → + 담당반 등록
필수: 반 이름 · 담당 강사   선택: Native 강사 · 학년(자유 입력, 여러 학년 가능) · 수업 요일(월~일 자유 선택) · 메모
이름 예시: 초4 월목 A반 / 중2 화금 B반 / 기초반
선택한 요일에만 출석체크에 그 반이 표시됩니다.
🎓 진급: 같은 화면 진급 버튼 → 매년 2월 전교생 학년 일괄 진급(6세→7세→…→중3→고1→고2→고3→졸업). 실행 직전 자동 백업.
3
학생 등록 & 반 배정  출결·성적 관리 앱
등록: 🎒 학생등록 → + 학생 등록 (이름·학년 필수, 학년은 6세·7세·초1~고3)
반 배정: 📚 반 관리 → 반 카드의 버튼 → 학생 검색(반 없는 학생만 보기 가능) 후 추가 — 담임이 직접 배정
반에 배정된 학생만 출석체크 화면에 나타납니다. 미배정 학생은 표시되지 않습니다.
퇴원 처리는 학생 상태를 퇴원으로 변경(자동으로 출결·분석에서 제외).
4
출결 관리  출결·성적 관리 앱
✅ 출석체크: 오늘 수업하는 반 카드 클릭 → 학생별 출석/결석/지각/조퇴 버튼 클릭 → 즉시 자동 저장(별도 저장 버튼 없음). 메모 입력도 자동 저장.
🧑‍🎓 출결관리: 날짜 범위·이름··상태로 과거 출결 이력 조회 (표: 날짜·이름·학년··상태·메모). 이름 검색은 즉시 필터.
📊 출결분석: 오늘 현황 · 최근 7일 출석률 · 결석 주의 학생(최근 30일).
출석률 = (출석+지각+조퇴) ÷ 전체 — 지각·조퇴도 출석 인정, 결석만 차감.
5
성적 입력  성적 관리 앱 (별도)
경로: 성적 관리 앱 → + 성적 입력
사이드바: 토플 시각화 · 토플 주니어 · 정기평가 · 단어시험
토플 시각화는 차트(학생별 점수·월별 추이·구간 분포), 나머지는 표. 학생을 선택(검색)하고 날짜·점수를 입력합니다.
6
공지  강사 포털
경로: 강사 포털 → 📢 공지
관리자만 작성·수정·삭제 가능, 강사는 열람. 전체 강사에게 공지를 전달합니다.
7
근무일지  강사 포털
경로: 강사 포털 → 📓 근무일지
강사가 날짜별 근무 내용을 작성. 관리자는 전체 강사 일지를 열람합니다.
8
결석사유  강사 포털
경로: 강사 포털 → 🚫 결석사유
날짜 · 학생(검색·선택) · 사유를 기록. 학생을 목록에서 선택하면 학생과 정식 연결됩니다.
9
상담일지  강사 포털
경로: 강사 포털 → 💬 상담일지
날짜 · 학생(검색·선택) · 학부모 성함 · 상담 내용을 기록. 학생별로 상담 이력이 누적됩니다.
10
백업 관리  관리자 앱
경로: 관리자 앱 → 🗄️ DB 백업 / 🔄 DB 복원
전체 데이터를 파일로 내보내(백업) 보관하고, 필요 시 복원합니다. 중요 변경 전 백업을 권장합니다.
규칙 및 주의사항
📅
요일별 반 자동 필터
각 반에 지정한 수업 요일(월~일 자유)에만 출석체크에 표시. 오늘 수업하는 반이 없거나 공휴일이면 "수업 없음" 안내.
즉시 자동 저장
출석 상태 버튼은 클릭 즉시 저장됩니다. 같은 버튼을 다시 누르면 해제(미체크)되며 안내가 표시됩니다.
반 배정 필수
반에 배정되지 않은 학생은 출석체크에 표시되지 않습니다.
🚪
퇴원 학생 자동 제외
상태를 퇴원으로 바꾸면 출석체크·분석에서 자동 제외됩니다(기록은 보존).
🔐
권한 구분
관리자/강사 권한이 분리됩니다. 공지 작성·강사 관리·반 개설·진급·백업은 관리자 전용. 학생 배정·출결 체크는 담임(강사).
💾
변경 전 백업
대량 수정·복원 등 중요한 작업 전에는 관리자 앱에서 DB 백업을 먼저 받으세요.
강사 이름을 수정하면 해당 강사와 연결된 기록의 강사명 표시도 함께 갱신됩니다.
데이터베이스 특징
☁️
Cloudflare D1 (SQLite)
서버리스 관계형 DB. 별도 서버 관리 없이 전 세계 엣지에서 빠르게 동작합니다.
🔗
관계형 구조
강사·반·학생·학생-반연결·출결·성적·일지·상담 등 10개 테이블이 고유 ID로 연결됩니다. 한 학생은 여러 반에 등록할 수 있습니다(N:M).
🛡️
참조 무결성 (FK)
외래키 제약으로 존재하지 않는 강사·반·학생을 가리키는 잘못된 데이터를 DB가 막습니다.
🆔
동명이인 구분
모든 학생·강사는 고유 ID를 가져 이름이 같아도 완전히 별개로 관리됩니다.
🗂️
이력 보존
출결·성적·상담에 그 시점의 이름을 함께 저장해, 강사·반이 바뀌어도 과거 기록이 보존됩니다.
🕐
한국 표준시 (KST)
모든 날짜·시간은 KST(UTC+9) 기준으로 처리됩니다.
관계형 DB 모식도 (10개 테이블)
teachers
강사 · 루트 엔티티
teacher_id — 거의 모든 표가 강사를 참조
classes
▲▼ class_id · student_id (N:M 연결)
student_classes
학생-반 연결 (한 학생 → 여러 반)
student_id
students
학생
student_id
attendance
출결
grades
성적
absences
결석사유
counsels
상담일지
📓 journals 근무일지 — teacher_id만 (학생 무관) 📢 notices 공지 — 독립 (FK 없음)
참조 키  teacher_id→teachers  ·  class_id→classes  ·  student_id→students
학생 ↔ 반 (N:M)  student_classes 연결표로 한 학생이 여러 반 등록  ·  출석체크는 학생이 속한 모든 반 카드에 표시, 출결은 반별로 분리 기록
삭제 정책(ON DELETE)  강사·반 삭제 → 자식의 해당 키는 NULL(기록·이름 사본 보존)  ·  학생 삭제 → attendance·grades는 CASCADE(함께 삭제)
PK 모든 테이블 id = UUID → 동명이인 완전 구분