ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
2026 O/L 준비를 100% 무료로 이용, 타밀·영어 이슬람 과목 노트·플래시카드·퀴즈·기출문제 제공
Enjoy 100% FREE access throughout your 2026 O/L preparation. O/L Islam in Tamil and English medium: notes, flashcards, quizzes and past papers.
교육TypeScript · PLpgSQLGitHub @MohamedSharfan온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗The website for StudyBuddy (Play · Learn · Level up). It's the web version of the StudyBuddy app for Sri Lankan O/L and A/L students. The first live subject is O/L Islam, Grade 10 & 11, in the Tamil and English mediums; more O/L subjects and the A/L streams come next.
Built with Next.js 15 (App Router), Tailwind CSS 4 and Supabase (Postgres, Auth and RLS).
The site is free (marketing line: "Enjoy 100% FREE access throughout your 2026 O/L preparation.", FREE_OFFER in config) and needs no account. The switches are in src/lib/config.ts:
| Setting | Now | What it does |
|---|---|---|
LOGIN_ENABLED | false | Hides sign-in, coins, ranks, profiles, AI Panda and the unlock page. Those pages lead back to the start screen. |
FREE_ACCESS | true | Every chapter is open. |
AL_ENABLED | false | A/L shows as "coming soon". |
Students choose O/L then Tamil or English medium on the start screen; the choice is remembered on their phone (sb_medium cookie) and they go straight to Islam. An Ask a teacher button on every study page opens WhatsApp (+94 76 739 3761) with the subject and chapter filled in.
Admins can still sign in at /login and use /admin. To switch accounts and paid unlocks back on, set LOGIN_ENABLED = true and FREE_ACCESS = false.
The schema lives in supabase/migrations/. Run the files in order:
20261025000001_studybuddy_web_init.sql: tables, security rules and functions20261025000002_levels_and_streams.sql: O/L / A/L level and A/L stream on profiles20261030000003_islam_english_medium.sql: adds O/L Islam in the English mediumAll files are safe to run more than once.
Option A: SQL editor. Open the Supabase dashboard → project aczdsffdgvitgoqsqnih → SQL Editor, paste each file and run it.
Option B: Claude Code + Supabase MCP. This repo already has a project-scoped Supabase MCP server in .mcp.json. Open a terminal claude session in this folder, run /mcp, authenticate supabase, and ask Claude to apply the migration.
Sign in to the website once, so your account exists. Then run this in the SQL editor:
insert into public.admin_users (user_id)
select id from auth.users where email = '[email protected]';
After that you can add more admins from Admin → Settings.
In Supabase → Authentication:
https://studybuddy.lkhttp://localhost:3000/auth/callback and https://YOUR_DOMAIN/auth/callbackCopy .env.example to .env.local and fill it in:
| Variable | Where to find it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Project Settings → API |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Same page (the anon / publishable key) |
NEXT_PUBLIC_SITE_URL | http://localhost:3000 locally, your domain in production |
ANTHROPIC_API_KEY | Optional. Turns on smart AI Panda answers (server-side only) |
npm install
npm run dev
Open http://localhost:3000. npm run dev and npm run build rebuild the content automatically.
Dev mode compiles each page the first time you open it, so it feels slow. To see the real speed, run the production build:
npm run build
npm start
Import the GitHub repo into Vercel, add the environment variables above, and deploy. The build command is npm run build.
All study content is markdown in content/, in the same format as the files you prepared:
content/islam-ol/ ← Tamil medium
content/islam-ol-en/ ← English medium (same layout)
grade-10/chapter-01/Notes.md
Flashcards.md
Quiz.md
PastPaper_Questions.md
grade-11/chapter-01/...
PastPapers_Index.md
Questions_To_Verify.md ← shown to admins under Admin → Content
Past-paper files can use either layout: the Tamil one (Q1. … Correct Answer: B) or the English one (### A1. … **Correct answer:** B – …). The build detects which one each file uses.
Front:/Back:, Q1. / A.–D. / Correct Answer: layout.npm run content to check the counts (it prints chapters, questions and cards).Locked chapters are never sent to the browser. The server checks access before it loads any chapter content.
Adding a subject: add content/<subject-id>/grade-XX/chapter-YY/..., add an entry to SUBJECTS in scripts/build-content.mjs with its level ("O/L" or "A/L") and, for A/L, the streams that take it. Then insert a row into the subjects table with its chapter counts. Remove it from the "coming soon" lists in src/lib/levels.ts.
SB-7KQ2MX), shown on their profile and on the Unlock page.Each medium is a separate subject (islam-ol = Tamil, islam-ol-en = English), so it is unlocked separately. The Students list has an unlock button for each medium.
award_activity() function, which also checks chapter access.subject_unlocks can only be written by admins, through admin_set_unlock().student_private, readable only by the student themselves and by admins.is_admin() on the server.src/app/ routes: landing, (app) student area, admin/, api/panda
src/components/ ChapterList, QuizRunner, FlashcardDeck, ExamVault, NoteReader, …
src/lib/ catalog, levels (O/L, A/L streams), content loader, session, progress, gamification, panda retrieval
scripts/ build-content.mjs (markdown → JSON)
supabase/ SQL migrations
content/ study material (markdown)