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).
- For students, they get personalized responses based on the course content that was uploaded (with citations!)
- 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.
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.
-
Set up your .env files (one in
packages/serverand one inpackages/app) to match your environment. You can copy thedev.env(forpackages/frontend) and.env.docker(forpackages/server) files, rename them to.envand 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. -
Start the database and api services within a Docker:
docker-compose build && docker-compose up- Visit the app at http://localhost:80 (or http://localhost)
New Devs Start Here Developing Guide
What is each environmental variable? TaskQuestions/Demos/Assignments/TaskProgress Help Toggle Course Features Help Backfill Vs Migrations
GPL-3.0