ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 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> |