ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An AI-powered academic web application where students upload photos of their handwritten notebook pages, have them automatically evaluated by a multimodal AI vision model (Groq's Qwen3.6-27B), review pinpointed visual mistake annotations per subject, and export single-day or merged semester notebook PDFs.檢視完整 README ↗
An AI-powered academic web application where students upload photos of their handwritten notebook pages, have them automatically evaluated by a multimodal AI vision model (Groq's Qwen3.6-27B), review pinpointed visual mistake annotations per subject, and export single-day or merged semester notebook PDFs.
GROQ_MODEL) on the free tier.(X, Y) coordinate pins.failed with a clear retry option — never a fabricated grade.| Layer | Technologies | Purpose |
|---|---|---|
| Backend API | Python 3.13 + FastAPI + Uvicorn | High-performance asynchronous REST API with auto-generated interactive OpenAPI docs (/docs). |
| Data Validation | Pydantic v2 | Strict, type-safe schemas for AI vision outputs, error coordinates, and upload payloads. |
| AI / Vision Pipeline | Groq API (Qwen3.6-27B vision) | Multimodal handwriting OCR & step-by-step grading on free tier, with prompt engineering. |
| Resilience | httpx + manual retry loop | Handles rate-limiting (HTTP 429) with exponential backoff retries; a failure that survives retries is reported explicitly, never masked. |
| PDF Generation | PyMuPDF (fitz) | Fast, high-fidelity PDF compilation with table of contents, annotated scans, and summary cards. |
| Database | SQLite + aiosqlite | Lightweight, file-based persistent storage for subjects, daily uploads, and AI remarks. |
| Frontend UI | React 18 + Vite + Modern CSS | Interactive notebook canvas with zoom/pan, pulsating mistake pins, timeline filter, and student dashboard. |
| UI Icons | Lucide React | Clean, modern iconography for student tools. |
Acadine/
├── backend/
│ ├── main.py # FastAPI REST endpoints & background tasks
│ ├── schemas.py # Pydantic v2 data models
│ ├── database.py # SQLite tables & async connection manager
│ ├── ai_service.py # AI vision pipeline & retry logic
│ ├── pdf_service.py # PyMuPDF PDF compilation engine
│ ├── seed.py # Sample notebook data generator
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── components/ # UploadCenter, NotebookViewer, RemarksPanel, etc.
│ │ ├── App.jsx # Main application router & state
│ │ └── index.css # Custom notebook design tokens
│ ├── package.json # Frontend dependencies
│ └── vite.config.js
└── IMPLEMENTATION_PLAN.md
This project runs on one shared AI backend, so if you fork/clone it, you'll need your own free API key — it takes 2 minutes:
cd backend
python -m venv venv && venv\Scripts\activate # Windows; use `source venv/bin/activate` on Mac/Linux
pip install -r requirements.txt
Create a backend/.env file with:
GROQ_API_KEY=your_key_here
Then run it:
uvicorn main:app --reload
cd frontend
npm install
npm run dev
No key? Uploading still works, but evaluation will return "AI unavailable" for every page — a Groq API key is required to actually grade anything.
For a deep dive into the architecture, request flow, and every function, see ARCHITECTURE.md.