Skip to content

itmir913/School-Record-App

Repository files navigation

All-in-One 학교생활기록부 에디터

License: PolyForm Noncommercial GitHub Release

Teacher Utility Kit — 교사를 위한 학교생활기록부 작성 도구

🔗 공식 페이지에서 자세한 안내 확인하기

학생 명렬표 등록부터 영역 구성, 활동 생성, 생기부 작성, 내보내기까지. 아래 순서대로 진행하면 학생별 학교생활기록부 문장을 손쉽게 완성할 수 있는 데스크톱 애플리케이션입니다.

🛡️ Notice: 이 소프트웨어는 교육 및 비상업적 목적으로만 무료로 사용할 수 있습니다. 상업적 이용은 엄격히 금지됩니다. (자세한 내용은 하단의 라이선스 규정을 확인하세요.)


주요 기능

  • 학생 관리 — 학년·반·번호·이름 등록, 엑셀 일괄 가져오기 지원
  • 영역 설정 — 자율활동, 진로활동, 동아리활동 등 영역별 NEIS 기준 바이트 제한 설정
  • 활동 관리 — 세부 활동(수행평가, 프로젝트 등)을 영역과 연결하여 체계적으로 관리
  • 특기사항 입력 — 학생 × 활동 격자 형태의 직관적인 입력 화면, 실시간 바이트 집계
  • 유의어 점검 — 작성 단계에서 스마트한 유의어 오류 실시간 점검
  • 텍스트 일괄 치환 — 정규식 지원, 전체 학생 기록을 클릭 몇 번으로 일괄 수정
  • 누락 방지 체크리스트 — 필수 활동 누락 여부 확인용 엑셀 다운로드
  • 저장 & 복구 — 입력 즉시 자동 저장, 버전 히스토리, 타임머신 스냅샷
  • 엑셀 가져오기/내보내기 — 나이스 일괄 업로드 양식으로 내보내기, 기존 파일 가져오기 지원
  • 자동 업데이트 확인 — GitHub 릴리즈 기반 신규 버전 알림

데이터 구조

생기부의 각 항목을 영역(Area) 이라고 부릅니다. 그 안에 학생이 실제로 참여한 개별 활동(Activity) 여러 개를 담아 하나의 문장 묶음을 완성합니다.

영역 (Area)  ───  진로활동  [최대 1,500 byte]
  │
  ├─ 활동 (Activity)  전공탐색 퀴즈
  ├─ 활동 (Activity)  전공 도서 독후감
  ├─ 활동 (Activity)  진로 상담 세션
  └─ 활동 (Activity)  ...

각 Activity마다 학생별로 기록을 작성하면, 프로그램이 합산된 문장을 해당 영역(Area) 항목으로 자동 병합합니다.


5단계 워크플로

단계 작업 설명
1 학생 등록 학년·반·번호·이름 등록. 엑셀(.xlsx, .csv)로 전체 명렬표 일괄 가져오기 가능
2 영역 구성 자율활동·진로활동·동아리활동 등 생기부 영역 생성 및 NEIS 기준 바이트 제한 설정
3 활동 생성 영역 하위에 세부 활동(수행평가, 프로젝트, 체험학습 등) 생성
4 생기부 작성 학생 × 활동 격자 화면에서 내용 입력. 실시간 합산 바이트 초과 시 셀 붉은색 강조
5 내보내기 나이스 일괄 업로드 양식에 맞춘 엑셀 파일로 내보내기

대상별 활용 가이드

담임교사 — 활동 취합 및 총괄 관리

자율활동·동아리활동·진로활동 영역을 병합하고 검수해야 하는 담임교사에게 최적화되어 있습니다.
지도교사들이 작성한 엑셀 데이터를 가져오기(Import) 하여, 초과된 바이트를 한눈에 파악하고 효율적으로 분량을 조절할 수 있습니다.

활용 팁: 바이트 초과 시 해당 셀이 붉은색으로 즉시 강조되므로, 길이를 줄여야 하는 학생을 직관적으로 찾아낼 수 있습니다.

교과교사 — 세특 작성

세부능력 및 특기사항(세특)을 집중적으로 작성하는 교과교사에게 최적화되어 있습니다.
수행평가, 수업 참여도, 프로젝트 등 평가 요소들을 세부 활동(Activity)으로 분리하여 체계적으로 관리하세요.

활용 팁: 엑셀 스프레드시트와 유사한 격자형 인터페이스를 제공하여, 여러 학급과 학생의 세특을 화면 전환 없이 한 번에 연속해서 작성하기 편리합니다.


저장 & 복구

  • 입력 즉시 자동 저장 — 글자를 타이핑하는 매 순간 데이터베이스에 즉시 저장. 예기치 못한 종료가 발생해도 데이터 유실 걱정 없음.
  • 버전 히스토리 — 작성한 문구가 마음에 들면 지금 버전을 명시적으로 저장. 과거부터 누적된 모든 변경 사항을 추적.
  • 타임머신 스냅샷 — 현재 생기부 전체를 스냅샷으로 저장. 대대적인 수정 후에도 원하는 시점으로 언제든지 되돌아올 수 있음.

다운로드

  • Releases 페이지에서 최신 버전을 내려받을 수 있습니다.
  • 프로그램 실행 후 업데이트 확인 버튼을 누르면, 새로운 버전 출시를 즉시 확인할 수 있습니다.

개발 환경 설정

사전 준비

실행

# 의존성 설치
npm install

# 개발 모드 실행 (Vite + Tauri)
npm run tauri dev

테스트

# 전체 단위 테스트
npm run test

# Cargo Rust 백엔드 단위 테스트
npm run test:rust

# Vue.js 프론트엔드 단위 테스트
npm run test:ts

빌드

# 전체 빌드
npm run tauri build

# 포터블 실행 파일 빌드
npm run tauri:windows:portable

# 설치 파일 (NSIS) 빌드
npm run tauri:windows:installer

# MacOS 빌드
npm run tauri:macos

Contributors

이 프로젝트는 여러 기여자의 도움으로 발전하고 있습니다. 상세한 기여 내역은 아래 문서에서 확인하실 수 있습니다.


라이선스

본 프로젝트는 PolyForm Noncommercial 1.0.0 라이선스를 따릅니다. (LICENSE.md 파일 참조) 교육 및 비상업적 목적에 한해 자유롭게 사용할 수 있으며, 상업적 이용은 엄격히 금지됩니다.

본 섹션은 동 라이선스에 대한 저작권자의 공식 해석 및 추가 조건(Additional Terms)으로 간주됩니다.

허용되는 사용

본 프로그램은 공익적 목적의 학교 교육 및 비영리 교육 활동을 지원하기 위해 개발되었습니다.

  • 공교육 교사 개인
  • 학교(사립학교 포함)
  • 교육청 및 공공 교육기관
  • 교사 개인이 제작하는 무료 소개·활용 강의 또는 영상 콘텐츠 (게시 플랫폼의 유료 여부와 무관)
  • 교육청, 학교, 교과연구회 등 공공·비영리 교육기관이 주관하는 교사 대상 연수 및 컨설팅 (강사의 수익 발생 여부와 무관)

허용되지 않는 사용

다음과 같은 사용은 상업적 이용으로 간주되어 허용되지 않습니다.

  • 본 소프트웨어 또는 수정본의 판매
  • 유료 서비스(SaaS, 구독형 서비스 등)로 제공하거나 상업적 제품·서비스에 포함하는 행위
  • 외주 개발, 납품 등 상업 계약의 일부로 사용하는 행위
  • 본 소프트웨어를 유료 서비스·플랫폼의 기능 또는 구성 요소로 통합하여 상업적 서비스를 구성하는 경우
  • 기업 또는 영리 조직 내부에서 업무 운영 목적으로 사용하는 경우
  • 민간 사업자의 유상 컨설팅, 연수, 유지보수 등의 일부로 사용하는 경우
  • 유료 구독·멤버십·결제 잠금 등 수익 창출 콘텐츠 형태로 본 소프트웨어 관련 강의·시연을 제공하는 경우
  • 학원(보습, 입시, 전문학원 등), 유료 입시 컨설팅 업체 등 영리 목적의 사교육 기관이 사업 운영 목적으로 사용하는 경우

교육기관 범위에 대한 저작권자 해석

PolyForm Noncommercial 1.0.0은 'educational institution'의 사용을 허용하나 이 용어를 정의하지 않습니다. 본 저작권자는 이 용어를 다음과 같이 해석합니다.

  • 해당: 「초·중등교육법」·「고등교육법」·「사립학교법」에 따라 설립된 정규 교육기관 및 이에 준하는 공공·비영리 교육기관
  • 미해당: 「학원의 설립·운영 및 과외교습에 관한 법률」상 학원·교습소 등 영리 목적의 사설 교육시설

라이선스 위반 제보 및 대응

  • 위반 사례 제보: 학원, 유료 입시 컨설팅, 기업 등 영리 목적의 무단 사용이나 재배포 사례를 발견하시면 아래 메일로 제보해 주시기 바랍니다.
  • 제보 방법: 라이선스 위반 사실을 확인할 수 있는 캡처 이미지, 영상 또는 해당 서비스의 URL을 함께 첨부해 주세요.
  • 이메일: hello@luminousky.com
  • 대응 방침: 제보된 위반 사례에 대해서는 저작권 보호를 위해 법률 대리인을 통한 민·형사상 대응 및 라이선스 종료 조치를 취할 수 있습니다.