2025
Neuron
Instructor-scoped AI assistant platform for computer science courses.
- React
- TypeScript
- FastAPI
- PostgreSQL
- Supabase
- asyncpg
- LangGraph
- Docker
Overview
Neuron is a classroom-focused AI assistant platform built to support instructor-defined teaching workflows and academic integrity. The system is designed around course boundaries and user roles so that students, instructors, and administrators interact with the same AI infrastructure through controlled and auditable paths.
Architecture and System Design
At the backend, I implemented a multi-tenant, course-scoped architecture using FastAPI and PostgreSQL with asyncpg. Each course owns its own data, retrieval context, and configuration, enabling safe reuse of infrastructure across multiple institutions and classes.
The conversational layer is implemented using LangGraph agent loops that combine retrieval, tool usage, and structured teaching flows. These loops allow instructors to define behavioral guardrails and response structure, while still supporting flexible student interactions.
To support grounded responses, I built a file ingestion and vector-store retrieval pipeline so that assistants can answer questions directly from course materials rather than relying on general knowledge.
Platform Capabilities
Authentication and authorization are implemented using JWT-based authentication and role-based access control for students, instructors, and administrators. The API exposes streaming chat endpoints and background processing pipelines for scalable inference and file processing.
The overall system is designed to operate as a reusable institutional platform rather than a single-course tool, emphasizing isolation, scalability, and instructor control.
What I Learned
This project significantly deepened my experience with multi-tenant backend design, asynchronous database access patterns, and agent-oriented orchestration. It also forced careful trade-offs between real-time UX, retrieval latency, and strict permission boundaries in an educational setting.