EngE-AI is an AI-powered learning assistant for UBC Engineering courses which emphasizes on developing student's critical thinking.
- Course creation and management
- Document upload (PDF, DOCX) for RAG
- Learning objectives and materials
- Flags management and responses
- Student chat monitoring
- Assistant and system prompts configuration
- Optional Writing Feedback workspace for staff-reviewed, evidence-based feedback and PDFs (A2 LLED 200 MVP; Canvas/OCR production integrations are gated)
- Course-aware AI chat
- Flag creation ("I'm struggling")
- Flag history
- Vector search (Qdrant)
- Streaming chat responses
- Session-based authentication
- MongoDB for courses and users
- Custom UBC Shibboleth SAML 2.0 authentication strategy for Passport.js
- Node.js (v24.1.0)
- MongoDB (see setup instructions)
- Qdrant (see setup instructions)
- SAML (see setup instructions)
- LLM endpoint (e.g. Ollama or other provider)
-
Clone the repo:
git clone https://github.com/ubc/tlef-engeai.git cd tlef-engeai -
Install dependencies:
npm install
-
Create a
.envfile in the project root (use.env.exampleand update the variables as needed). -
Build and run the application:
- Development:
npm run dev(nodemon + BrowserSync; compiles frontend in watch mode) - Production:
npm run start:prod(runs full build, then starts the server)
Compiled browser scripts are written to
public/dist/(gitignored).npm startalone does not build them — usenpm run start:prodor runnpm run buildfirst. - Development:
| Role | Name |
|---|---|
| Principal Investigator | Alireza Bagherzadeh — Associate Professor of Teaching, CHBE |
| Co-Investigator | Amir M. Dehkhoda — Assistant Professor of Teaching, Materials Engineering |
| Software Developer | Richard Tape |
| Software Developer | Charisma Rusdiyanto |
| Software Developer | Kathleen Tom |
| Software Developer | Christopher Rodas |
- Create a feature branch
- Follow existing code style (TypeScript, Express patterns)
- Submit a pull request
For API reference, see documents/ENDPOINT_ARCHITECTURE.md.
- Endpoint Architecture
- Responsive Design
- Writing Feedback Architecture
- Writing Feedback Assessment Logic
- Writing Feedback Style Guide
- Git Worktrees and Cursor Workflow
- docker-simple-saml — Containerized SAML 2.0 IdP for local development
Pushing to the main branch in this repo will trigger a deploy automatically to the staging server.
The staging deploy step must run npm run start:prod (or npm run build then npm start). Without a frontend build, login and app pages will 404 on /dist/public/scripts/... assets.