ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Huquq bo'yicha hammasi bir joyda — milliy sertifikatga tayyorgarlik va istalgan huquq sohasini mustaqil o'rganish. Next.js 16 + Supabase + Telegram. YURISTIM TEAM MChJ mahsuloti. Femida Edu — A+ Huquq 2.0 kodidan boshlangan alohida mahsulot (alohida repo, alohida Supabase, alohida bot). A+ Huquq o'z holicha ishlashda davom etadi. Reja: docs/V3_REJA.md, brend: docs/BREND.md, qarorlar: data/v3/polls.json (93 ta).查看完整 README ↗
Huquq bo'yicha hammasi bir joyda — milliy sertifikatga tayyorgarlik va istalgan huquq sohasini mustaqil o'rganish. Next.js 16 + Supabase + Telegram. YURISTIM TEAM MChJ mahsuloti.
Femida Edu — A+ Huquq 2.0 kodidan boshlangan alohida mahsulot (alohida repo, alohida Supabase, alohida bot). A+ Huquq o'z holicha ishlashda davom etadi. Reja:
docs/V3_REJA.md, brend:docs/BREND.md, qarorlar:data/v3/polls.json(93 ta).
src/components/logo.tsx), to'q ko'k + oltin ranglar, sarlavhalar Playfair Display.public/brand/femida-statue.svg), favicon — oltin nuqtali F.F… (DOYSE kassasi F-buyurtmalarni shu saytga uzatadi).telegram.femidaedu.uz; bot: @FemidaEduBot (yaratilishi kerak).20261001000015_law_base.sql).npm run lex:import -- MK — lex.uz'dan (yoki --file matn.txt bilan nusxalangan matndan) import; all — ro'yxatdagi hammasi,
--dry — bazaga yozmasdan tahlil. Ro'yxat: data/lex/documents.json (A darajali 7 ta kodeks; lex_id'lar tekshirilishi kerak —
skript sahifa sarlavhasini solishtiradi va mos kelmasa to'xtaydi).changed, yo'qolsa — repealed,
ularga bog'langan e'lon qilingan savollar review holatiga qaytadi. Ekspert ko'rib chiqqach: ack_article_change(id)./app/sohalar — 18 soha (A/B/C guruhlari, rang/ikonka, o'zlashtirish foizi); /app/sohalar/<soha> — "Kodeks bo'yicha"
(hujjat → bob → modda, moddalar xaritasi) va "Hayotiy mavzular"; /app/sohalar/<soha>/<modda> — modda matni, lex.uz havolasi,
"Shu modda bo'yicha test", oldingi/keyingi modda.article_is_free, start_article_practice).npm run dev → /dev/sohalar (namuna ma'lumot)./app/testlar — mening testlarim, guruhga berilgan testlar, kod bilan ochish, haftalik AI limiti./app/testlar/yangi — manba: bazadagi moddalar (raqamlar yoki bob), matn, PDF/rasm; 5–50 savol (bepul: haftasiga 10 test × 10 savol).
AI 10 talik bo'laklarda tuzadi, savollar article_ref bo'yicha bazadagi moddaga bog'lanadi (topilmasa — "o'z materiali")./app/testlar/<id> — har savolni tahrirlash; javob kaliti o'zgarsa key_version++ va barcha natijalar jimgina qayta hisoblanadi
(eski ball score_history da); nashr: faqat men / havola / guruh / ochiq katalog; taymer, muddat, urinishlar, aralashtirish,
javob ko'rsatish (har savoldan keyin / oxirida / muddat tugagach), mehmonlar; natijalar va har savol bo'yicha to'g'ri %./t/<KOD> (6 belgi, 0/O/1/I yo'q), t.me/<bot>?startapp=t_<KOD> (Mini App), bot /start t_<KOD>, Telegram share./t: public + ishonch darajasi ≥ 1 (admin beradi) + AI moderatsiya + bazaga bog'langan + ≥ 5 savol + izohli ≥ 50%.npm run dev → /dev/testlar?sahifa=bosh|yangi|tahrir|karta|ishlash./app/yordamchi — "Tushuntirish" (modda/tushuncha, misol bilan) va "Kazus tahlili" (o'quv masalasi) suhbatlari;
kontekst bazadagi moddalardan (search_articles — to'liq matnli qidiruv + suhbat moddasi + matndagi "12-modda" havolalari).
Har javob ostida manba moddalar (havola) va "Bu yuridik maslahat emas"; shaxsiy ish bo'yicha — yuristga murojaat tavsiyasi.weak_articles (xato bor, o'zlashtirilmagan) → AI test (4-qism, test limitiga kiradi)./app/yordamchi/reja — maqsad (sertifikat/soha), sana, kunlik vaqt, daraja + zaif moddalar → 8 haftagacha reja./dev/ustoz?sahifa=bosh|suhbat|reja.startapp=j_<PIN>), har savolga 10–60 s,
ixtiyoriy guruh. Bepul — 30 ishtirokchigacha, Premium — 200. Bir hostda bitta faol xona./jonli — PIN va ism bilan qo'shilish (kirmaganlar ham, httpOnly token); bot /start j_<PIN>./jonli/host/<xona> — proyektor uchun ekran: ishtirokchilar, savol va taymer, javob berganlar soni, variantlar taqsimoti,
to'g'ri javob, top-5, yakuniy natijalar. /jonli/<xona> — o'quvchi ekrani (tanlov turida bir bosishda javob)./api/jonli/<xona> orqali olinadi; vaqt server soati bo'yicha; javob kaliti faqat "reveal" bosqichida.
Ball: to'g'ri — 500 + 500 × qolgan vaqt ulushi./dev/jonli?kim=host|oquvchi|kirish&holat=lobby|question|reveal|finished.Huquq fanidan milliy sertifikat imtihoniga tayyorgarlik platformasi — Next.js 16 + Supabase + Telegram.
Reja: ../HUQUQSHUNOSLIK KURSI/05_TEXNIK_ONLAYN_TIZIM/PLATFORMA_2.0_REJA.md
0-bosqich (poydevor) ✅
supabase/migrations) va boshlang'ich ma'lumot (supabase/seed.sql)1-bosqich (kontent va mashq) ✅
data/v1/REPORT.md2-bosqich (imtihon va takrorlash) ✅
3-bosqich (Premium va to'lov) ✅ — qo'lda to'lov
plans) va to'lov rekvizitlari admin paneldan o'zgartiriladi — narxlar: 1 oy — 49 000, 3 oy — 129 000 so'm/app/premium: bepul va Premium solishtirmasi, karta rekvizitlari, chek yuklash (JPG/PNG/WEBP/PDF ≤ 5 MB,
tur fayl baytlaridan tekshiriladi), to'lovlar tarixi va holatireceipts bucket'ida; admin 10 daqiqalik imzolangan havola orqali ko'radi/admin/tolovlar: tasdiqlash (obuna joriy muddat tugagan kundan uzaytiriladi) yoki sabab bilan rad etish/admin/sozlamalar: tarif narxlari, karta raqami (bo'sh bo'lsa — to'lov formasi yopiq)4-bosqich (Telegram bot va Mini App) ✅
/api/bot (maxfiy token bilan): /start (hisobni bog'lash), /kunlik, /natija, /sozlamalar, /yordam/tg): Telegram ichida bir bosishda kirish (initData imzosi + Origin tekshiruvi)5-bosqich (o'qituvchi paneli) ✅
/app/ustoz: guruh ochish, taklif havolasi (nusxalash / Telegram'da ulashish), o'quvchi chiqarish/app/qoshilish/<kod>: o'quvchi bir bosishda qo'shiladi6-bosqich (AI) ✅ — Claude Opus 5.5 (claude-opus-5-5), rad etilsa server tomonda fallbacks: "default"
/app/kontent: savol generatori (muallif manba matnini joylashtiradi) → qoralama → ekspert tasdiqlaydi;
shikoyatlarni ko'rib chiqish (to'g'ri shikoyat — savol muomaladan olinadi)ai_usage jadvaliga yoziladi (tokenlar, maqsad)ANTHROPIC_API_KEY qo'yilgach (hozircha soxta klient bilan testlangan)7-bosqich (motivatsiya) ✅
/app/reyting): haftalik va umumiy, viloyat bo'yicha; ball = aniqlik × 0,7 + faollik × 0,3;
faqat "Ali V." ko'rinishidagi ism, profilda reytingdan chiqish8-bosqich (kalibrlash) — vosita tayyor, real ma'lumot kutilmoqda
npm run db:calibrate: Rasch (JMLE) bilan savol qiyinligi, 10/18/7 toifalari, hisobot data/calibration/REPORT.md:
javob kaliti shubhali savollar (ajratish kuchi manfiy) va yorlig'i noto'g'ri savollar-- --apply (sinov imtihoni kalibrlangan toifalarni ishlatadi)Kontent sifati va PWA
/app/kontent/savollar: qidiruv, hujjat filtri, "javobi ko'zga tashlanadi" filtri; savolni tahrirlash
(versiya oshadi — qayta import ustidan yozmaydi; ikki ekspert bir vaqtda tahrirlasa — to'qnashuv aniqlanadi)data/v1/fixes.json, to'g'ri javob o'zgarmagan)Kurs o'quvchilarini ko'chirish: v1 da akkaunt yo'q edi (ism + telefon), shuning uchun avtomatik ko'chirilmaydi.
Tartib: o'zingizga admin panelda "O'qituvchi" rolini bering → /app/ustoz da "Femida Edu kurs" guruhini oching →
/admin/guruhlar da uni "Premium guruh" qiling → taklif havolasini kurs Telegram guruhiga tashlang.
Node.js ~/.local/node ga o'rnatilgan. Terminalda bir marta:
export PATH="$HOME/.local/node/bin:$PATH"
supabase.com → New project (region: Frankfurt eu-central-1 — O'zbekistonga eng yaqin).
Project Settings → API Keys dan URL, publishable va secret kalitlarni, Connect → Session pooler dan
DATABASE_URL ni oling.
.env.example ni .env.local ga nusxalab, qiymatlarni to'ldiring.
Sxema va boshlang'ich ma'lumot (qayta ishga tushirish xavfsiz — faqat yangi migratsiyalar qo'llanadi):
npm run db:migrate -- --seed
Authentication → Sign In / Providers → Email — o'chiring. Platforma faqat Telegram va Google orqali kiritadi; ochiq email ro'yxati begona Telegram hisobini oldindan egallashga urinish uchun ishlatilishi mumkin (kod bundan himoyalangan, lekin keraksiz eshikni yopib qo'ygan ma'qul).
@BotFather → /newbot → token va username'ni .env.local ga yozing.
/setdomain → saytning domeni (masalan femidaedu.uz). Widget localhost'da ishlamaydi — sinash uchun
Vercel preview domeni yoki ngrok tunnelidan foydalaning va NEXT_PUBLIC_SITE_URL ni shunga moslang.
Webhook va menyu (sayt HTTPS domenda ishga tushgach): .env.local ga TELEGRAM_WEBHOOK_SECRET
(openssl rand -hex 32) yozing, keyin npm run bot:setup (holatni ko'rish: npm run bot:setup -- info).
Vercel → Settings → Environment Variables: CRON_SECRET (openssl rand -hex 32) — eslatmalar vercel.json
dagi jadval bo'yicha (03:00 va 15:00 UTC = 08:00 va 20:00 Toshkent) ishlaydi.
https://<loyiha>.supabase.co/auth/v1/callbackNEXT_PUBLIC_SITE_URL qiymatihttp://localhost:3000/auth/callback, https://<domen>/auth/callbackKirgandan keyin Supabase SQL Editor'da:
update public.profiles set role = 'admin' where id = (select id from auth.users order by created_at limit 1);
Keyin /admin/sozlamalar da tarif narxlarini va to'lov qabul qilinadigan karta raqamini kiriting —
karta kiritilmaguncha /app/premium dagi to'lov formasi yopiq turadi.
.env.local ga DATABASE_URL qo'shing (Supabase → Connect → Session pooler satri, parol bilan), keyin:
npm run db:import
Import tranzaksiyada ishlaydi (xato bo'lsa hech narsa o'zgarmaydi) va qayta ishga tushirsa ham xavfsiz:
admin panelda tahrirlangan savollar (version > 1) qayta importda ustidan yozilmaydi.
v1 materiallari o'zgarsa, to'plamni qayta quring (../HUQUQSHUNOSLIK KURSI dan o'qiydi):
npm run import:build
npm install
npm run dev # http://localhost:3000 (Supabase'siz namunalar: /dev/savollar, /dev/imtihon, /dev/premium — faqat dev)
npm test # 234 ta test: RLS, import, mashq/imtihon SQL funksiyalari (PGlite), baholash, transliteratsiya
npm run typecheck
npm run lint
questions.answer, explanation) mijozga ochilmaydi — ustun GRANT'lari bilan yopilgan.
Javobni tekshirish va izohni qaytarish faqat serverda (createSupabaseAdmin), foydalanuvchi huquqi tekshirilgandan keyin.profiles.role, telegram_id, groups.grants_premium ni foydalanuvchi o'zi o'zgartira olmaydi.SUPABASE_SECRET_KEY va TELEGRAM_BOT_TOKEN faqat serverda; hech qachon NEXT_PUBLIC_ bilan boshlanmasin.tg_link cookie) —
begona imzoli havola orqali akkauntni egallashdan himoya.tests/db.test.ts ga RLS testi qo'shing.src/
proxy.ts sessiyani yangilash + yopiq bo'limlarga yo'naltirish (Next 16: middleware → proxy)
app/
page.tsx landing
kirish/ Telegram + Google
app/ o'quvchi kabineti (bosh sahifa, mashq, imtihon, takrorlash, premium, profil)
app/ustoz o'qituvchi paneli; app/qoshilish — guruhga qo'shilish
app/kontent kontent paneli: AI generator, tasdiqlash, shikoyatlar
admin/ admin panel: to'lovlar, sozlamalar
dev/ Supabase'siz namunalar (faqat dev)
api/auth/telegram/ widget qaytish manzili, bog'lash
api/auth/telegram-webapp Mini App orqali kirish
api/bot, api/cron bot webhook va eslatmalar
tg/ Mini App kirish sahifasi
auth/callback, chiqish Google OAuth, chiqish
lib/
questions.ts savol modeli va javobni tekshirish
grading-open.ts yozma javob (v1 mantiqi: sonlar so'zda, xatoga chidamli)
translit.ts lotin ↔ kirill
practice.ts mashq: javobni yozish (server)
mock.ts sinov rejasi, ball, daraja, tahlil (sof funksiyalar)
mock-server.ts sinovni boshlash / saqlash / baholash (server)
payments.ts, receipt.ts qo'lda to'lov: chekni tekshirish va yuklash
ai.ts, ai-server.ts Claude: qayta tekshirish, tushuntirish, savol generatori
telegram.ts Login Widget va Mini App imzosini tekshirish
bot/ Bot API klienti, buyruqlar, ommaviy xabar yuborish
auth-telegram.ts Telegram → Supabase foydalanuvchisi
auth.ts requireUser / requireRole
supabase/ server, brauzer va admin klientlar
scripts/import/ v1 → data/v1/bundle.json → SQL (build.ts, load.ts)
data/v1/ import to'plami va hisobot
supabase/
migrations/ sxema + RLS, mashq funksiyalari
seed.sql spetsifikatsiya bo'limlari, standart mock shabloni, nishonlar
tests/ vitest