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> |