AI-powered assessment platform for teachers: upload assignment artifacts, extract structured academic content, auto-grade student submissions, and provide targeted remediation insights.
Assess-AI is an open-source, multi-service system built for classroom workflows. It combines:
- A TypeScript/Express backend for authentication, data APIs, and orchestration
- A Python/FastAPI agent service running specialized LangGraph pipelines
- A PostgreSQL schema with assignment, question, rubric, solution, student answer, and score entities
- Optional Redis caching/rate-limit support via Upstash
The backend delegates AI-heavy document understanding and grading logic to the agent service through internal APIs.
- Assignment lifecycle management (create, list, search, update, delete)
- Question, rubric, and model-solution ingestion from uploaded files
- Student profile and student-answer ingestion workflows
- AI-assisted grading pipeline for per-question scoring
- Teacher review support (manual score/comment adjustments)
- TA chat endpoint for guided instructional support
- Remediation and weak-concept retrieval APIs
- JWT-based auth and role-aware APIs
- OpenAPI docs via Swagger UI
backend/— Express + TypeScript REST API (port8080in Docker)agent/— FastAPI + LangGraph AI workflows (port8000)
- Teacher uploads assignment artifacts (questions/rubrics/solutions/student answers).
- Backend receives request and forwards processing to FastAPI internal endpoints.
- Agent parses files (images/PDF/docs), runs specialized graph(s), and returns structured output.
- Backend persists/retrieves records and exposes teacher/student-facing APIs.
- Grading endpoint triggers full AI grading workflow and stores score-level outputs.
backend/src/routes/— route definitionsbackend/src/controllers/— request handlers and orchestrationbackend/src/lib/— DB, Redis, logging, JWT utilitiesbackend/src/config/— environment and OpenAPI setupbackend/test/— Jest testsbackend/supabase/migrations/— SQL migrationsagent/main.py— FastAPI app and AI processing endpointsagent/utils/*_agent/— task-specific LangGraph agentsagent/config/db.py— DB integration for agent-side operationsdocker-compose.yml— local multi-service orchestration
Primary groups include:
/auth/users/assignments- grading routes (e.g.
POST /assignments/:assignmentId/students/:studentId/grade) - TA chat routes (e.g.
POST /ta/chat) - remediation routes (e.g.
POST /remediation/generate) - health route (
GET /health)
Swagger/OpenAPI UI is exposed at:
GET /api-docs
Important internal endpoints include:
POST /internal/agent/questions/processPOST /internal/agent/rubrics/processPOST /internal/agent/solutions/processPOST /internal/agent/student-answers/processPOST /internal/agent/grade/processPOST /internal/agent/ta/chatPOST /internal/agent/ta/chat/json
- Node.js (>=
20.6.0) - TypeScript + Express
- PostgreSQL (
pg) - JWT auth (
jsonwebtoken) - Swagger (
swagger-ui-express) - Validation (
zod) - Testing (
jest,supertest)
- Python (
>=3.12.3) - FastAPI + Uvicorn
- LangGraph + LangChain/OpenAI integrations
- Document parsing utilities (
pypdf,python-docx, image/pdf tooling) - PostgreSQL + Supabase client integrations
- Docker + Docker Compose (recommended)
- OR local runtimes:
- Node.js
>=20.6.0 - Python
>=3.12.3 - PostgreSQL instance
- Node.js
From repo root:
docker compose up --buildServices:
- Backend:
http://localhost:8080 - Agent:
http://localhost:8000
cd backend
npm install
npm run devUsing uv (recommended):
cd agent
uv sync
uv run uvicorn main:app --reload --host 0.0.0.0 --port 8000Or with pip:
cd agent
pip install -e .
uvicorn main:app --reload --host 0.0.0.0 --port 8000Create and populate:
backend/.envagent/.env
Based on backend/src/config/env.ts:
NODE_ENVPORTDATABASE_HOSTDATABASE_PORTDATABASE_NAMEDATABASE_USERDATABASE_PASSWORDDATABASE_URLUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENJWT_SECRETJWT_EXPIRES_INFASTAPI_URL(used by controllers; defaults tohttp://localhost:8000if unset)
The agent uses .env for DB/OpenAI/AWS/document-processing and orchestration settings. Add required secrets for your deployment (e.g., OpenAI keys, DB credentials, optional cloud OCR settings).
Security note: never commit real
.envfiles. Commit sanitized.env.examplefiles instead.
- SQL migrations live under
backend/supabase/migrations/ - Additional SQL/data resources:
agent/seed_data.sqlagent/single.sqlschema_dump.txt
Run migrations using your preferred PostgreSQL/Supabase workflow before starting production workloads.
Run backend tests:
cd backend
npm testnpm run dev— start dev server with watch modenpm run build— compile TypeScriptnpm start— run compiled servernpm test— run Jest testsnpm run lint/npm run lint:fixnpm run format/npm run format:check
- API documentation references:
FRONTEND_API_GUIDE.mdandapi.md - Architecture docs:
AGENT_ARCHITECTURE.md,agent_architecutre_fix.md - Product direction:
PRODUCTION_ROADMAP.md
Contributions are welcome.
Recommended flow:
- Fork the repo
- Create a feature branch
- Make focused changes with tests where applicable
- Open a PR with a clear description
Please keep changes minimal, documented, and aligned with existing code style.
Add your license file and update this section accordingly.
Example:
MIT(recommended for open-source collaboration)
- Project owner:
Shahidul - Repository:
https://github.com/HeyMahdy/Assess-AI