Skip to content

ubco-db/helpme

Repository files navigation

HelpMe System

This is the repo for the HelpMe system, which is currently being hosted at https://coursehelp.ubc.ca/.

Check out the Overview Video or see the landing page for detailed info (packages/frontend/app/page.tsx), which has images. The production server's landing page should have all of this though. Also checkout our About page.

Main features (all can be toggled off):

  • Queues: For managing office hours or labs.
    • Especially useful for busy Hybrid or Online sessions, but also supports In-Person queues.
    • Scales well for large courses. Supports multiple queues with multiple staff at the same time, with a built-in schedule to help manage everything (calendar events).
    • Tracks what questions were asked - used in Insights page
    • Also supports "task questions" (aka Demos) which are when students ask to have some "tasks" checked off. Useful for labs that have multiple parts that need to be checked off by staff
  • Course Chatbot for real-time answers about course content. Note that the chatbot repo is on a separate service (ask HelpMe devs for access). HelpMe calls chatbot endpoints via chatbot-api.service.ts
    • For students, they get personalized responses based on the course content that was uploaded (with citations!)
      • Can convert questions into Anytime Questions for Human In The Loop (HITL) support.
      • Accessed by students via Invite Link (the main invite link to the course) or embeddable within Canvas (instructors must reach out to LTHub for access)
      • Hosted on UBCO servers (we have a GPU server running Ollama, but this may be switched out with some other local model manager at some point). When developing though, you likely won't have network permissions to access the server and thus you will need to use OpenAI or your own Ollama server.
    • For instructors, they get more control and can see what questions are asked and also edit the answer and re-insert it into the chatbot knowledge base.
      • Prompt is professor-customizable (and they are encouraged to do so).
      • Supports drag-n-drop and automatic Canvas course document upload (via canvas integration).
  • Anytime Questions: A discussion board/email replacement
    • The questions are initially answered by AI, which can then be reviewed and edited by instructors and TAs (great for large courses with lots of TAs since any TA can answer)
    • Instructors and TAs can then make the question public to allow other students to see it (good for commonly asked questions)
    • Students are fully anonymized to one another by default, allowing for anxiety-free participation
  • Built for UBC but supports other organizations (for more information, contact Ramon Lawrence ramon.lawrence@ubc.ca)

Note: the new Chatbot feature has been integrated through a different API service that is not part of this system. It has its own private repo. If you're looking to contribute in tasks related to the chatbot, you will need permission to access the repo.

Installation (for Production)

The easiest way to spin up the system is through Docker.

The Docker container uses an environment variable file that can be found here. This file should stay up to date within other environment variable files. Change the environment variables to match your environment.

The Docker image should only be used on cloud service or developer to verify the final changes in pull request; this is because API service's image needs to be rebuild when new code changes are made. Instead, follow the steps in this section if you constantly making changes to the API.

  1. Set up your .env files (one in packages/server and one in packages/app) to match your environment. You can copy the dev.env (for packages/frontend) and .env.docker (for packages/server) files, rename them to .env and fill in the values. More details on the different environment variables and where you can get them are in the ENVIRONMENT_VARIABLES.md file in the docs directory.

  2. Start the database and api services within a Docker:

docker-compose build && docker-compose up
  1. Visit the app at http://localhost:80 (or http://localhost)

Developing

New Devs Start Here Developing Guide

Other docs

What is each environmental variable? TaskQuestions/Demos/Assignments/TaskProgress Help Toggle Course Features Help Backfill Vs Migrations

License

GPL-3.0

About

HelpMe student support system for office hours and TA management, question answering, and AI chatbot.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages