An AI-powered essay grading application built for PatriotHacks 2026. Save time and ensure consistency by automatically grading student essays against your custom rubrics.
- AI-Powered Grading: Leverages Google Gemini to evaluate essays against your rubric
- Multi-Format Support: Accepts PDF, TXT, PNG, JPG, and more
- Detailed Feedback: Provides criterion-by-criterion scores and feedback
- Batch Processing: Grade multiple essays at once
- Fast & Accurate: Get results in seconds, not hours
- Frontend: SvelteKit, TypeScript, Tailwind CSS
- Backend: Python FastAPI
- AI: Google Gemini 3 Flash (2.0 flash for fallback)
- Bun for the frontend
- Python 3.12+ for the backend
- Google Gemini API Key
- Clone the repository
git clone <repository-url>
cd patriothacks2026- Set up the backend
cd backend
cp .env.example .env # or create .env manually
# Add your GEMINI_API_KEY to .env
uv sync- Set up the frontend
cd frontend
bun installBackend (Terminal 1):
cd backend
uv run fastapi dev main.pyThe API will be available at http://localhost:8000
Frontend (Terminal 2):
cd frontend
bun run devThe app will be available at http://localhost:5173
- Navigate to the grader page
- Upload your grading rubric (PDF, Image or TXT)
- Upload student essays (single or multiple)
- Add optional instructor notes for context
- Click "Grade" and receive instant feedback
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Root endpoint |
/api/health |
GET | Health check |
/api/gradev2 |
POST | Grade a single essay |
| Variable | Description |
|---|---|
GEMINI_API_KEY |
Google Gemini API key (required) |
GEMINI_MODEL |
Model to use (default: gemini-2.0-flash) |
patriothacks2026/
├── frontend/ # SvelteKit frontend
│ ├── src/
│ │ ├── lib/ # Shared components
│ │ └── routes/ # App routes
│ └── package.json
└── backend/ # FastAPI backend
├── main.py # API entry point
├── services/ # Business logic
└── pyproject.toml
MIT