ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
공부하다 막히는 내용을 서로 묻고 답하는 학습 커뮤니티
Translation pending
EducationJavaScript · CSSGitHub @imuzikrOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
학생들이 공부하다 이해하기 어려운 내용을 서로 질문하고 답변하는 학습 커뮤니티입니다. 질문 게시판(반 공유) + 반별 공부방 + KWL 성찰 + 관리자 대시보드로 구성됩니다. 앱은 lib/firebase.js의 설정 유무에 따라 두 모드로 동작합니다. • 실서비스 모드 (Firebase 설정됨 · 현재 상태): Firebase Authentication으로 실제 로그인/회원가입하고, 데이터는 Firestore에 저장됩니다. 권한은 Firestore 보안 규칙과 Cloud Functions가 서버에서 강제합니다. • 데모 모드 (Firebase 미설정): 브라우저 메모리에 임시 저장(새로고침 시 초기화)되고, 테스트 유저로 자동 입장합니다. 화면·기능을 빠르게 확인할 때만 쓰입니다. (lib/user.js의 TEST_USER)Read the full README ↗
학생들이 공부하다 이해하기 어려운 내용을 서로 질문하고 답변하는 학습 커뮤니티입니다. 질문 게시판(반 공유) + 반별 공부방 + KWL 성찰 + 관리자 대시보드로 구성됩니다.
npm install
npm run dev # http://localhost:3000
npm run build # 프로덕션 빌드
앱은 lib/firebase.js의 설정 유무에 따라 두 모드로 동작합니다.
lib/user.js의 TEST_USER)lib/auth.js). 로그인 시
users/{uid} 프로필을 보장하고, 학생은 접속 세션마다 새 익명 닉네임을 받습니다.setUserRole이
커스텀 클레임으로만 부여합니다. 보안 규칙은 request.auth.token.role을
검사합니다. 화면의 isAdmin(user)는 UI 노출용일 뿐, 실제 강제는 규칙입니다.main에 push하면 자동 배포됩니다.firebase deploy --only firestore,storage,functions
# 또는 개별: firestore:rules / firestore:indexes / storage / functions
firestore.rules / storage.rules — 보안 규칙firestore.indexes.json — 복합 색인 + collectionGroup 필드 오버라이드functions/index.js — Cloud Functions (아래)functions/index.js)setUserRole — 역할(커스텀 클레임) 부여 (관리자만 호출)deleteAuthUser — 탈퇴 시 로그인 계정 삭제 (관리자/교사)onAnswerCreated / onAnswerDeleted — answerCount 서버 집계 + 새 답변 알림weeklyTopAnswerers — 매주 월요일 09시 주간 답변왕 공지식별 정보(실명·이메일·학번)는 users/{uid}에만 저장하고, 게시물·카드에는
익명 정보(닉네임·이모지)만 넣습니다.
users/{uid} 프로필 (email, realName, displayName, role, requestedRole ...)
questions 질문 (authorId, keyword, resolved, meTooIds[] ...)
└ answers 답변 (하위 컬렉션)
notices 공지 (교사만 작성)
keywords 과목 키워드 (교사만 생성/수정)
classes 반 / joinCodes 입장 코드 / memberships 소속
studyBoards 공부방 보드
└ cards 공부방 카드 (반 멤버 격리)
kwl KWL 성찰 (본인 + 교사만 열람)
app/page.js 랜딩 + 로그인/회원가입(역할 선택)
app/board/page.js 질문 게시판 (키워드 | 질문 | 공지)
app/study/page.js 반별 공부방
app/admin/page.js 관리자 대시보드
app/report/page.js 학생 학습 리포트
lib/firebase.js Firebase 초기화 (config)
lib/auth.js 인증 (이메일/구글) + 프로필/역할
lib/user.js 현재 사용자 캐시 + 역할 헬퍼
lib/store.js 데이터 레이어 (Firestore ↔ 데모 모드 자동 전환)
functions/index.js Cloud Functions (서버 코드)
자세한 아키텍처·규칙 세부는 CLAUDE.md를 참고하세요.