ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證New Lesson
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
MyLesson — şəxsi bilik və yaddaş sistemi Öyrəndiyin terminləri sistemli topla → nümunə və əlaqələrlə zənginləşdir → yalnız öz qeydlərinə əsaslanan AI köməkçisinə sual ver → testdən keç → zəif tərəfləri müəyyən et → aralıqlı təkrarla. Bu sadə qeyd proqramı deyil. Əsas dəyər — topladığın məlumatı aktiv biliyə çevirən dövrdür.檢視完整 README ↗
Öyrəndiyin terminləri sistemli topla → nümunə və əlaqələrlə zənginləşdir → yalnız öz qeydlərinə əsaslanan AI köməkçisinə sual ver → testdən keç → zəif tərəfləri müəyyən et → aralıqlı təkrarla.
Bu sadə qeyd proqramı deyil. Əsas dəyər — topladığın məlumatı aktiv biliyə çevirən dövrdür.
| Sahə | Seçim | Qeyd |
|---|---|---|
| Framework | Next.js 15 (App Router) + React 19 | Server Components + Server Actions |
| Dil | TypeScript strict (noUncheckedIndexedAccess daxil) | any minimuma endirilib |
| UI | Tailwind CSS + əl ilə yazılmış shadcn/ui üslublu komponentlər | Radix primitivləri, dark mode, responsive |
| DB | PostgreSQL + pgvector (Neon uyğun) | Hibrid axtarış: vektor + trigram |
| ORM | Prisma 6 | postgresqlExtensions, Unsupported("vector(1536)") |
| Auth | Auth.js v5 (NextAuth beta) | Credentials + JWT sessiya, Prisma adapter |
| Validasiya | Zod | Bütün action/route girişləri |
| AI | Provider adapter (OpenAI / Anthropic / offline echo) | Server-only, açar frontendə çıxmır |
| Embeddings | OpenAI text-embedding-3-small və ya offline hash-embedding | Embedding.model + dimensions DB-də saxlanılır |
| Markdown/LaTeX | react-markdown + remark-gfm/-math + rehype-katex/-highlight | [[Termin]] daxili keçidləri |
| Storage | Storage adapter (local / s3) | S3/R2 üçün stub hazırdır |
| Test | Vitest | tests/ — SRS + RAG vahid testləri |
src/lib/ai/ daxilində ChatProvider və EmbeddingProvider interfeysləri var. Yeni provayder = bir sinif + getChatProvider() içində bir case. Chat və embedding ayrıdır (Anthropic-in embedding API-si yoxdur; premium chat + ucuz lokal embedding mümkün olsun).echo offline provayder. Heç bir API açarı olmadan bütün tətbiq (RAG daxil) işləyir — CI, lokal dev və demo üçün. Hash əsaslı embedding leksik oxşarlığı təxmini əks etdirir.pgvector cosine (HNSW indeks) + pg_trgm/ILIKE açar söz axtarışı çəkili cəmlə birləşir və yenidən sıralanır. Bütün sorğular userId ilə məhdudlaşır.contentHash-i saxlanılır; yalnız dəyişən parçalar yenidən embed olunur.deletedAt + Trash səhifəsi + audit UserActivity.Category — bir terminin tək, rəngli qrupu (qraf üçün). Subject (Fənn) — akademik təsnifat, many-to-many: bir termin çoxlu fənndə ola bilər, amma izah səhifəsi birdir (/terms/[slug]). Topic (mövzu/dərs) fənnin sıralı ağacıdır; TopicTerm termini mövzuya "əlavə" (supplement) kimi bağlayır. Gələcəkdə mövzuya başqa supplement növləri (düstur, fayl, çalışma) əlavə olunacaq.Browser (RSC + Client Components)
│ Server Actions (RPC) API Routes
▼ ▼
┌───────────────────────────────────────────────┐
│ Next.js server │
│ ├─ src/server/actions/* (giriş validasiya) │
│ ├─ src/server/services/* (biznes məntiq) │
│ ├─ src/lib/rag/* (chunk→embed→ │
│ │ retrieve→answer) │
│ ├─ src/lib/ai/* (provider adapter) │
│ ├─ src/lib/storage/* (storage adapter) │
│ └─ src/lib/auth* (Auth.js v5) │
└───────────────┬───────────────────────────────┘
▼
PostgreSQL + pgvector (Prisma)
▲
OpenAI / Anthropic / echo (yalnız serverdən)
Təhlükəsizlik (bölmə 17): API açarları yalnız serverdə; bütün AI sorğuları server-side; hər istifadəçinin embedding-ləri userId ilə filtrlənir; yüklənmiş məzmun etibarsız data kimi RAG konteksti daxilində <context> teqləri ilə izolyasiya olunur; per-user rate limiting (src/lib/rate-limit.ts); fayl ölçü/format limiti (.env); AI heç nəyi istifadəçi təsdiqi olmadan qeydə yazmır (AIContentSuggestion PENDING axını).
registerAction yeni istifadəçiyə 11 seed termini + fənnlər + əlaqələr + suallar kopyalayır, embedding-ləri qurur./terms/new — yalnız ad məcburi. Bölmələrə ayrılmış forma. Create rejimində localStorage qaralaması, edit rejimində avtomatik saxlama (debounce 1.2s)./assistant — RAG. Rejimlər (sadə/müəllim/elmi/…), scope (Yalnız qeydlərim / Qeydlərim + AI biliyi). Cavabda: istifadə olunan qeydlər (kliklənən), uyğunluq %, məlumat çatışmazlığı, əlaqəli terminlər. Cavabı qeyd/nümunə kimi termə əlavə et (təsdiqlə)./quizzes — mənbə seç (zəif / bu həftə / kateqoriya / …), sual növləri, say. Açıq suallar mənaca qiymətləndirilir (AI, yoxdursa leksik). Nəticə terminin əminlik səviyyəsini və növbəti təkrar tarixini yeniləyir./review — flashcard, SM-2. "Xatırlamadım / Çətin / Normal / Asan" → növbəti tarix./dashboard, /stats — ardıcıllıq, status/kateqoriya bölgüsü, test nəticələri./import-export — JSON/CSV/Markdown ixrac, JSON/CSV idxal, tam backup, vektor yenidən indeksləmə. /settings → bütün məzmunu sil.Tam sxem: prisma/schema.prisma. Diaqram və izah: docs/DATABASE.md.
Əsas qruplar:
User, Account, Session, VerificationToken, PasswordResetTokenTerm, TermAlias, TermRelation, Note, Example, CodeExample, Formula, Source, AttachmentCategory, Collection, Tag, Subject, Topic, TopicTermEmbedding (vector(1536), model, dimensions, contentHash — yenidən indeksləmə üçün)Chat, ChatMessage (citations JSON, confidence, hasGap), AIContentSuggestion (PENDING/ACCEPTED/REJECTED)Quiz, Question, Answer, Review, LearningProgress (SM-2 vəziyyəti)UserActivityHamısında createdAt/updatedAt; istifadəçi məzmununda deletedAt (soft delete).
prisma/
schema.prisma Bütün modellər
bootstrap.ts EXTENSION + HNSW/trigram indekslər
seed.ts Demo istifadəçi + başlanğıc məzmun
src/
env.ts Zod ilə validasiya olunan ENV
middleware.ts Auth qapısı
app/
(marketing) → landing (src/app/page.tsx)
(auth)/login|register
(app)/dashboard|terms|subjects|collections|graph|
assistant|quizzes|review|sources|stats|history|
import-export|trash|settings
api/auth/[...nextauth] | api/export | api/health
components/
ui/ Button, Card, Dialog, Select, Tabs, …
app/ Sidebar, Topbar, EmptyState
editor/ MarkdownEditor (toolbar + preview)
terms/ subjects/ assistant/ quiz/ review/ graph/ …
lib/
ai/ types + index (adapter) + providers/{openai,anthropic,echo}
rag/ chunk · vector · indexer · retrieve · answer
storage/ local + s3 adapter
srs.ts SM-2
rate-limit.ts logger.ts labels.ts utils.ts
validations/ Zod sxemləri
server/
actions/ "use server" — girişin validasiyası, revalidatePath
services/ biznes məntiq (repository/service layer)
queries/ oxu üçün aqreqasiyalar (dashboard)
tests/ Vitest
docs/ ARCHITECTURE.md · DATABASE.md · ROADMAP.md
vector və pg_trgm extension-ları ilə) — ən asanı Neon# 1. Asılılıqlar
npm install
# 2. Mühit
cp .env.example .env
# DATABASE_URL / DIRECT_URL doldur
# npx auth secret → AUTH_SECRET
# AI_PROVIDER=echo (açarsız işləmək üçün) və ya openai + OPENAI_API_KEY
# 3. Bazanı qur (extension → schema → indekslər → seed)
npm run db:setup
# ekiv.: db:bootstrap → db:push → db:index → db:seed
# 4. İşə sal
npm run dev # http://localhost:3000
.env-də DEMO_MODE=true olduqda: [email protected] / demo1234 (login səhifəsində ?demo=1 avtomatik doldurur).
| Skript | İş |
|---|---|
npm run db:setup | Sıfırdan tam qurulum |
npm run db:reset | Bazanı sıfırla + yenidən seed |
npm run db:studio | Prisma Studio |
npm run db:index | HNSW/trigram indeksləri (schema push-dan sonra) |
npm run typecheck | tsc --noEmit |
npm test | Vitest |
GET /api/health | DB + provayder statusu |
Autentifikasiya (qeydiyyat/giriş/çıxış, sessiya izolyasiyası) · Termin CRUD + soft delete/restore · Kateqoriya, etiket, kolleksiya · Fənn / Mövzu / TopicTerm · Nümunə CRUD + AI təklifi (təsdiqli) · Əlaqələr (8 növ) + bilik qrafı · Adi + semantik axtarış · RAG AI köməkçisi (rejimlər, scope, sitatlar, gap) · Söhbət tarixçəsi (ad dəyiş/sil/səs ver/qeydə köçür) · Test mərkəzi (mənbələr, 5 sual növü, semantik qiymətləndirmə) · Flashcard + SM-2 təkrar · Dashboard + Statistika · Mənbələr · Import/Export (JSON/CSV/MD) + yenidən indeksləmə · Dark mode, responsive, toast, skeleton, empty/error state.
Attachment modeli hazırdır.PasswordResetToken modeli hazırdır).TopicTerm-i polimorf TopicSupplement-ə genişləndir.stream() artıq var).userId əsaslıdır)..apkg idxal/ixrac.limit() imzası dəyişmir.echo embedding semantik deyil, leksikdir — gerçək semantik axtarış üçün EMBEDDING_PROVIDER=openai.npm i @aws-sdk/client-s3 + implementasiya).