ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
AI-powered web app that grades handwritten notebook photos with pinpointed mistake annotations and exports graded PDFs — built with FastAPI, React, and Groq vision AI.
EducationPython · JavaScriptGitHub @BiswasNehaaOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.