ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The platform replacing Thinkific for fincoursa.com: course catalog, checkout, course player, and
revenue & progress dashboards for students, instructors, affiliates and admins.
Stack: Next.js 16 (App Router) on Vercel · Supabase (Postgres, Auth, Storage) · Mux (video) ·
pluggable payment gateways (Stripe included; regional gateways added through one interface).README 전문 보기 ↗The platform replacing Thinkific for fincoursa.com: course catalog, checkout, course player, and revenue & progress dashboards for students, instructors, affiliates and admins.
Stack: Next.js 16 (App Router) on Vercel · Supabase (Postgres, Auth, Storage) · Mux (video) · pluggable payment gateways (Stripe included; regional gateways added through one interface).
Design: the page structure, sections, navigation, URLs and copy mirror the live fincoursa.com. Colours, fonts and radii are placeholders in one file,
src/app/theme.css, to be replaced with the exact values from the Thinkific theme. See docs/DESIGN_HANDOFF.md.
| Area | Highlights |
|---|---|
| Public site | Same pages and URLs as today: /, /pages/paid-courses, /pages/free-courses, /pages/bundles, /pages/instructors, /pages/contact-us, /courses/:slug, /bundles/:slug, /users/sign_in |
| Checkout | Server-side pricing, coupons, UAE VAT (5%, tax-inclusive), country-based gateway routing, free enrolment, idempotent webhooks, printable tax invoices |
| Course player | Signed Mux playback, resume where you left off, watch-time based completion (seeking doesn't count), quizzes graded on the server, drip unlocks, file downloads via signed URLs, email watermark |
| Student | My courses with progress, continue button, purchases & invoices, certificates with a public verification page |
| Instructor | Earnings (pending / ready / paid), daily earnings chart, students and average progress per course, completion rate, lesson-by-lesson drop-off, course builder with direct video upload |
| Affiliate | Application → approval, referral link builder, clicks → sales → commission, pending / ready / paid |
| Admin | Net revenue, VAT, refunds, revenue by course / channel / gateway / country, orders & refunds, affiliate approvals, payout batches, leads |
| Course authoring (admin) | Create a course → details, thumbnail upload, category, level, access length, SEO → prices (several currencies, compare-at price) → instructors with revenue share → curriculum: chapters and lessons with reorder, video upload to Mux, PDF/download uploads, visual quiz builder, free previews, drip unlocks → publish. Bundles (courses, price, image) and instructor profiles (photo, logo, bio, linked login) are managed the same way |
npm install
cp .env.example .env.local # fill in what you have; the public site runs in demo mode without Supabase
npm run dev
Without Supabase variables the public pages render from built-in demo content, so the site can be previewed straight away. Sign-in, checkout and dashboards need Supabase.
Migrations are in supabase/migrations, demo/seed content in supabase/seed.sql.
npx supabase link --project-ref <ref>
npx supabase db push # applies the migrations
psql "$DATABASE_URL" -f supabase/seed.sql # optional: current catalog as seed data
Make yourself admin after signing up once:
insert into user_roles (user_id, role) select id, 'admin' from auth.users where email = '[email protected]';
Storage buckets course-images (public) and course-files (private) are created by the migrations.
The database logic (fulfilment, progress, certificates, earnings, commissions, refunds, reports, and row-level security) has an end-to-end test that runs on plain Postgres 15+:
PGHOST=localhost PGUSER=postgres supabase/tests/run.sh
| Service | URL |
|---|---|
| Mux | https://<site>/api/webhooks/mux |
| Stripe | https://<site>/api/webhooks/payments/stripe (events: checkout.session.*, refund.created, refund.updated) |
| Any new gateway | https://<site>/api/webhooks/payments/<gateway-id> |