An auto-grading AI application that helps teachers grade Canvas assignments. The app fetches assignments and submissions from Canvas via backend APIs, applies AI-assisted scoring with configurable rubrics, and lets teachers review and export grades back to Canvas.
Goals:
- Reduce teacher grading time for written and objective assignments
- Provide consistent, explainable AI-generated scores with editable feedback
- Seamless Canvas integration for assignment fetching and grade export
- TypeScript (full-stack)
- Next.js (app framework)
- Convex (backend functions and minimal storage)
- Better Auth (authentication)
- Vercel (hosting)
- Tailwind CSS with daisyUI (UI)
- Anthropic (AI)
- Data storage: Store Canvas access tokens and course references in Convex. Assignment, submission, and rubric data can be temporarily stored in the client during grading workflows.
- API pattern: Frontend calls Next.js server action functions that fetch from Canvas API and return data to frontend. Backend and frontend share convex connection.
- Background processing: Use Convex async functions for batch scoring and retryable jobs.
- Secrets: Store API keys in Convex secrets, never in repo.
- Privacy: Follow FERPA expectations. Minimize data storage.
- Canvas integration: Use Canvas OAuth and APIs per their terms.
- OpenAI usage: Follow OpenAI usage policies.
Steps to build and/or run the software:
bun install&bun run dev- Select start without an account (run Convex locally)
- Create a new convex project if prompted
- Open the local Next.js app in your browser (usually http://localhost:3000)
Instructions for using the software:
- Create a new account with a new canvas token
- add a course (won't let you due to stripe payment, check out public version)
- start grading
If you want to see the public version of the app, you can visit classcrew.com.
To recreate the development environment, you need the following software and/or libraries with the specified versions:
I found these websites useful in developing this software:
The following items I plan to fix, improve, and/or add to this project in the future:
- Fix ending quotation marks on AI results?
- Canvas Auth Provider
- Delete grades that are a month old
- Delete all data related to a course on course deletion