장단콩 보드게임 & 미니어처 게임 클럽

Firebase 회원제 + 일정 게시판 구현 계획

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 장단콩 클럽 Jekyll 사이트에 Firebase 기반 회원제 로그인, 운영자 승인 시스템, 일정 게시판(캘린더 뷰), 공지 게시판을 추가한다.

Architecture: Firebase Authentication(Google OAuth + 이메일/비밀번호)으로 로그인을 처리하고, Firestore에 users/posts/comments 컬렉션을 두어 데이터를 관리한다. Jekyll 정적 페이지에 Firebase SDK를 ES Module 방식으로 로드하고, 각 페이지별 JS 파일이 UI와 Firebase를 연결한다. 보안은 Firestore Security Rules로 강제한다.

Tech Stack: Jekyll (GitHub Pages), Firebase Authentication, Cloud Firestore, FullCalendar v6 (CDN), Vanilla JS (ES Modules), Bootstrap 5 (기존 사용 중)


파일 구조

신규 생성

assets/js/firebase-init.js       ← Firebase 초기화 및 export (auth, db)
assets/js/auth-guard.js          ← 로그인/승인 상태 확인 공통 유틸
assets/js/login.js               ← /login.html 전용
assets/js/register.js            ← /register.html 전용
assets/js/board.js               ← /board.html 전용 (캘린더 + 목록)
assets/js/post.js                ← /post.html 전용 (상세 + 참석 + 댓글)
assets/js/write.js               ← /write.html 전용
assets/js/admin.js               ← /admin.html 전용

login.html                       ← 로그인 페이지
register.html                    ← 닉네임 입력 + 가입 신청
board.html                       ← 게시판 메인 (공지 + 일정 캘린더/목록)
post.html                        ← 일정/공지 상세
write.html                       ← 글 작성
admin.html                       ← 운영자 관리 페이지

assets/css/board.css             ← 게시판 공통 스타일

수정

_includes/header.html            ← 네비게이션에 게시판/로그인 링크 추가
_config.yml                      ← navigation에 게시판 항목 추가

Task 1: Firebase 프로젝트 세팅 (수동 작업)

이 태스크는 Firebase 콘솔에서 직접 수행한다. 코드 작업이 없다.


Task 2: Firebase 초기화 및 보안 규칙

Files:


Task 3: 로그인 페이지 (/login.html)

Files:


Task 4: 회원가입 신청 페이지 (/register.html)

Files:


Task 5: 운영자 관리 페이지 (/admin.html)

Files:


Task 6: 글 작성 페이지 (/write.html)

Files:


Task 7: 게시판 메인 페이지 (/board.html)

Files:


Task 8: 게시글 상세 페이지 (/post.html)

Files:


Task 9: 네비게이션 및 헤더 연동

Files:


Task 10: GitHub Pages 배포 및 최종 확인


참고: Firebase Spark(무료) 플랜 한도

항목 한도 예상 사용량
Firestore 읽기 50,000회/일 100명 × 수십 회 = 여유 있음
Firestore 쓰기 20,000회/일 월 20건 게시글 = 여유 있음
Auth 사용자 무제한 100명 이하
저장 용량 1 GiB 텍스트만 = 여유 있음