InkGrader is a state-of-the-art, AI-powered grading system designed to automate the evaluation of handwritten documents. By combining advanced OCR (Optical Character Recognition) with intelligent multi-agent systems and RAG (Retrieval-Augmented Generation), InkGrader provides an unparalleled experience for automated grading and assessment management.
- 📷 Intelligent OCR Extraction: High-accuracy extraction of handwritten text from scans and PDFs using multi-engine OCR strategies.
- 🤖 Multi-Agent AI System:
- Extraction Agent: Seamlessly parses raw OCR text into structured question/answer formats.
- Grading Agent: Evaluates student responses based on context, accuracy, and provided reference materials.
- 📚 RAG-Enhanced Evaluation: Powered by FAISS and OpenVINO, the system cross-references student answers with official marking schemes for highly accurate grading.
- ⚡ Real-time Updates: Track the grading process in real-time via WebSockets as the agents work through batches of documents.
- 📊 Modern Dashboard: A premium Next.js 15 dashboard for managing exams, uploading student work, and viewing detailed feedback.
- 🔐 Enterprise-Grade Auth: Secure authentication flow with JWT (Access & Refresh tokens) and MongoDB storage.
- Framework: FastAPI (Asynchronous high-performance API)
- AI/LLM: PydanticAI, Groq (LLM Inference), Sentence-Transformers
- Vector Search: FAISS with OpenVINO optimization
- Database: MongoDB (Async Motor driver)
- Streaming: Redis Streams for background task coordination
- OCR: OCR.Space API / Pypdf
- Framework: Next.js 15 (App Router)
- Styling: Tailwind CSS 4, Framer Motion
- Components: Radix UI, Lucide Icons
- Fetching: Axios with interceptors for auth management
- Design: Premium aesthetics with Geist Sans & Geist Mono
- Python 3.10+
- Node.js 18+
- MongoDB Instance (Atlas)
- Redis Instance
- Groq API Key
- OCR.Space API Key
- Navigate to the backend:
cd backend - Setup environment:
python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure
.env(refer to Configuration): - Start the server:
python app.py
- Navigate to the frontend:
cd frontend_next_js - Install dependencies:
npm install
- Start the development server:
npm run dev
Create a .env file in the backend/ directory:
# Database
MONGO_DB_USERNAME=your_username
MONGO_DB_PASSWORD=your_password
# Authentication
JWT_SECRET_KEY=your_secret_key
JWT_REFRESH_SECRET_KEY=your_refresh_key
# AI & OCR
GROQ_API_KEY=your_groq_key
OCR_API_KEY=your_ocr_key
# Redis
REDIS_URL=localhost
REDIS_PORT=6379
REDIS_PASSWORD=defaultbackend/: FastAPI application, AI agents, and file processing logic.frontend_next_js/: Next.js 15 dashboard and user interface.backend/Agents/: The "brains"—Extraction and Grading agents.backend/FileProcessor/: OCR and document parsing utilities.
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Project Lead: [Your Name/Github] Project Link: https://github.com/Geoff-Robin/InkGrader