연수(교원 자율연수) 참여 선생님들이 각자 접속해 실시간으로 함께 사용하는 포스트잇 협업 보드판입니다. 빌드 도구 없이 순수 HTML/CSS/JS로 만들어져 있고, 데이터는 Firebase Firestore에 실시간으로 저장/동기화됩니다.
public/
index.html 홈 화면 (보드판 목록, 만들기)
board.html 보드판 화면 (포스트잇/단원명, 캡쳐, 삭제)
css/style.css
js/firebase.js Firebase 프로젝트 설정 및 초기화
js/home.js 홈 화면 로직
js/board.js 보드판 화면 로직
firestore.rules Firestore 보안 규칙
firebase.json Firebase Hosting 설정
.firebaserc 연결된 Firebase 프로젝트 (sticky-note-board-4cefc)
[학교명]의 학교자율시간 활동내용 제목이 표시됩니다.
sticky-note-board-4cefc (Firestore 사용)public/js/firebase.js에 프로젝트 설정(config)이 이미 반영되어 있어, 별도 설정 없이 그대로 정적 호스팅에 올리면 동작합니다.boards (collection)
{boardId}
schoolName: string
password: string (숫자 4자리)
createdAt: timestamp
notes (subcollection)
{noteId}
type: "sticky" | "unit"
text: string
x: number
y: number
createdAt: timestamp
로그인 시스템이 없는 내부용 연수 도구 특성상, 비밀번호 확인은 앱(클라이언트) 단에서 처리하고 Firestore 규칙은 앱을 통한 정상적인 사용을 막지 않도록 읽기/쓰기를 열어두었습니다. 민감한 개인정보를 다루지 않는 용도로만 사용해 주세요.
콘솔에서 규칙을 반영하려면 Firebase 콘솔 → Firestore Database → 규칙 탭에 firestore.rules 내용을 붙여넣고 게시하면 됩니다. Firebase CLI가 있다면 아래 명령으로도 배포할 수 있습니다.
firebase deploy --only firestore:rules
npm install -g firebase-toolsfirebase loginfirebase deploy --only hostinghttps://sticky-note-board-4cefc.web.app 주소로 접속하면 됩니다.Firebase Hosting이 아니어도 public/ 폴더를 그대로 올릴 수 있는 정적 호스팅(예: Netlify, Vercel, GitHub Pages 등)이면 동일하게 동작합니다.
cd public
python3 -m http.server 8080
브라우저에서 http://localhost:8080 접속.
html2canvas 라이브러리(CDN)를 사용하므로 실제 배포 환경(인터넷 연결)에서 정상 동작합니다.