AI-Powered Automated Assessment and Feedback Agent

An intelligent, agentic AI system designed to significantly reduce teachers' workloads by providing instant assessment and personalized differentiated feedback and follow-on activities for student assignments.

Workflow At a Glance

  • Upload an assignment and student response (file or text)
  • Instantly receive detailed, actionable feedback and differentiated individualized follow-on tasks and a grade
  • Review, delete, or clear past assessments in the history
  • All actions are accessible, error-proof, and demo resilient

🏆 Hackathon Info

This project was developed for the Microsoft Hack Together: AI Agents Hackathon (April 830, 2025).

🎯 What It Does (Key Features)

  • Automated Grading: Instantly grades student submissions (text or file) for any assignment/task.
  • Personalized Feedback: Actionable, contextual feedback including grade, strengths, areas for improvement, individualized activity, and teacher suggestion.
  • Assessment History: All assessments are saved locally (browser localStorage) for later review and demo resilience.
  • History Management: Delete individual assessments or clear all history, with confirmation dialogs for safety.
  • Navigation: Seamless navigation between upload and results/history pages.
  • Robust Error Handling: Friendly, actionable error messages for upload, AI, or network issues.
  • Loading Spinner: Visual feedback while grading is in progress.
  • Accessibility: Screen reader-friendly, keyboard-accessible, and color-contrast aware.

⚙️ How It Works

  1. Teacher uploads a student submission (file or text) and assignment description.
  2. AI (Azure OpenAI) generates instant, individualized feedback and a grade.
  3. Results and assessment history are displayed for review, deletion, or clearing.
  4. All data is stored locally (no backend required for history/demo).

🚀 Technical Stack

  • TypeScript: Ensures reliability, maintainability, and scalability.
  • Azure OpenAI: Provides advanced NLP capabilities for nuanced and accurate assessment.
  • Azure Cognitive Services: Enhances semantic analysis for precise feedback generation.

📖 Educational Impact

  • Reduces hours spent grading and marking.
  • Improves quality and consistency of student feedback.
  • Allows teachers more time to focus on direct student interaction and lesson planning.

🔮 Future Enhancements

  • Integration with major Learning Management Systems (LMS) for streamlined workflow.
  • Expansion of supported assignment types and subjects.
  • Development of analytics dashboards for deeper insights into class performance.

📽️ Demonstration Video

[Coming soon: View a full demonstration of the agent in action.]

👥 Team

🛠️ Getting Started

This project uses SvelteKit and TypeScript with pnpm as the package manager.

Prerequisites

Installation & Running Locally

Developing

Once you've installed dependencies with pnpm install, start a development server:

pnpm run dev

# or start the server and open the app in a new browser tab
pnpm run dev -- --open

Building

To create a production version:

pnpm run build

You can preview the production build with npm run preview.

🕹️ Real-Time Events: PartyKit Setup

This project uses PartyKit for real-time tool usage event streaming between the frontend and backend.

Running PartyKit Locally

  1. Install dependencies for PartyKit:
    cd partykit
    npm install
    
  2. Set up your .env file (in the project root):
    VITE_PARTYKIT_BASE_URL=ws://127.0.0.1:1999
    PARTYKIT_BASE_URL=ws://127.0.0.1:1999
    
    These variables are required for both the SvelteKit frontend and backend to connect to your local PartyKit server.
  3. Start the PartyKit dev server:
    cd partykit
    npm run dev
    
    The server will be available at ws://127.0.0.1:1999/party/<room>.
  4. Start the SvelteKit frontend (in a separate terminal):
    pnpm run dev
    

Deploying PartyKit to Production

  1. Update your .env for production:
    VITE_PARTYKIT_BASE_URL=wss://<your-connection-string>.partykit.dev
    PARTYKIT_BASE_URL=wss://<your-connection-string>.partykit.dev
    
  2. Deploy PartyKit:
    cd partykit
    npm run deploy
    
    Wait for the domain provisioning to complete.
  3. Update your frontend/backend to use the production WebSocket URL (as above).

Troubleshooting

  • If you see Invalid URL errors, make sure your environment variables are set and that you have restarted your dev servers after editing .env.
  • Always run the PartyKit dev server from the partykit directory.

See also .env.example for sample configuration.

📚 Resources

📌 License

Licensed under the Business Source License 1.1.
See LICENSE file for details.

S
Description
No description provided
Readme 5.6 MiB
Languages
TypeScript 58.9%
Svelte 34%
Gherkin 3.2%
JavaScript 1.7%
HTML 1.6%
Other 0.6%