Biology Bot
A study tool for BIOL 1592 / 1692 at TRU

How to use Biology Bot

A Moodle-integrated AI study tool for Human Anatomy & Physiology. Provides a Socratic tutor, multiple kinds of practice questions, a personal progress view, and (for instructors) a class dashboard. Grounded in the instructor's own course materials and the TRU Pressbooks open textbooks — not generic web sources.

● Live Open source on GitHub

For students 👩‍🎓

Getting in

  1. Open your Moodle course in the usual way.
  2. Click the "Biology Bot" activity wherever your instructor has placed it. The tool will open inside Moodle.
  3. You'll see a list of units. Click any unit to start working.
The Biology Bot launch page showing 17 units with per-kind progress badges and a 'continue where you left off' card
The launch page. Each unit shows your accuracy badges so far; a "continue where you left off" card resumes your last session.

What each tab does

Once you're inside a unit, you'll see five tabs across the top:

💬 Tutor
A Socratic chat — the tutor asks questions rather than lecturing. Type what you're trying to understand, and it'll probe your thinking. Click "↻ New conversation" anytime to clear context and start fresh.
MC quiz
Multiple choice with five options, ranging from introductory to advanced difficulty. After each answer, you'll see why the right answer is right and why the wrong ones were tempting.
🔘 TF quiz
True / false statements with explanations of why — particularly important for the false ones.
📝 FITB quiz
Fill in the blank. Drawn from your unit's terms list. Don't worry about plural vs singular or hyphen vs no-hyphen — those variations are accepted.
✍️ Free response
Longer-answer questions worth several marks each. The AI grades against a rubric and tells you what you got right, what was missing, and what wasn't needed — followed by a model answer.
The Tutor tab mid-conversation. Student asked about interstitial fluid; tutor responds by building intuition from a concrete capillary scenario.
The Tutor tab probes the student's understanding rather than handing over an answer. The "↻ New conversation" button (top right) resets context anytime.
An MC question after submitting an incorrect answer. The chosen option is marked red, the correct answer is green, and a detailed explanation covers why each distractor is wrong.
After every quiz answer you see whether you were right plus a detailed explanation — for MC, why each distractor was wrong. Click "Want to know more?" for an even richer walkthrough with slide citations.

While you're answering

Practice exam mode

  1. Click 📝 Practice exam in the top-right header.
  2. Choose how many of each question type (MC, TF, FITB, free-response), pick difficulty, and pick which units to draw from.
  3. Two output paths:
    • Generate exam (online) — take the exam interactively in the browser. Optional toggle to hide feedback during (exam-realistic mode).
    • 📄 Generate printable — produces a print-friendly page. Use your browser's "Print / save as PDF" to get a paper version. Toggle to include or exclude the answer key.
Practice exam configuration: difficulty dropdown, count inputs for MC/TF/FITB/FR, feedback-during toggle, and a per-unit checklist with All/None shortcuts.
Practice exam configuration. Uncheck "Show feedback after each question" to simulate real exam conditions.

Tracking your progress

Click 📊 Your progress in the header. You'll see your overall accuracy, units you're weak on, and a per-unit-per-kind breakdown. Each unit in the picker also shows small badges with your accuracy so far.

The picker also shows a "Continue where you left off" card when you've used the tool before — one click resumes the unit and activity you were last using.

Your progress view with overall accuracy, three weak-spot rows highlighted in pink, and a per-unit breakdown table showing MC, TF, FITB, FR, and Tutor activity per unit.
Your progress: overall accuracy, weak spots automatically flagged, and a per-unit-per-kind breakdown showing exactly where you're solid and where you need more work.

For instructors 👩‍🏫

Adding Biology Bot to a course

  1. Confirm the tool is registered with your Moodle. If "Biology Bot" already appears as a preconfigured tool when you go to Add an activity or resource, skip to step 3. If not, your Moodle admin needs to register it once site-wide using dynamic registration with URL https://moodle-biology-bot-production.up.railway.app/register.
  2. If the tool is registered but not appearing in the activity chooser, an admin needs to edit it under Site administration → Plugins → External tool → Manage tools and set Tool configuration usage to "Show in activity chooser and as a preconfigured tool".
  3. In your course, turn editing on, then Add an activity or resourceBiology Bot. Save.
  4. That's it. Enrolled students will see and use it. Your launch (as instructor) shows you a different view than students see.

What the instructor dashboard shows

When you launch Biology Bot as an instructor (anyone with the Instructor, Administrator, or Teaching Assistant role in the course), you'll see a 👩‍🏫 Instructor view button in the header alongside the student-facing options. Clicking it opens the class dashboard.

Sections of the dashboard

Class totals

Headline cards: how many students have used the tool, how many quiz attempts, class-wide accuracy, total tutor turns, tutor sessions. A first-glance pulse check on engagement.

Class weak spots

Lists the units where the class as a whole is under 70% accuracy across at least 4 attempts. Sorted worst-first. Use this to flag content that may need a re-explanation in lecture.

Per-unit performance

For every unit: how many students have engaged, total attempts, class accuracy. Helps spot units that are either consistently easy or consistently hard, vs. units no one is touching.

The top of the instructor dashboard: class total cards (students, quiz attempts, class accuracy, tutor turns, tutor sessions), three class weak-spot rows, and the beginning of the per-unit performance table.
Top of the instructor dashboard. Class totals at a glance, then class-wide weak spots — units where the cohort is under 70% across enough attempts to be meaningful.

Roster

One row per student in the course: total attempts, accuracy, tutor turn count, flagged weak units, and time since last seen. Click any student to drill into their per-unit-per-kind breakdown — same view they see for themselves.

Concept-gap analysis (AI-generated)

Click Run analysis (class-wide). Takes 15–30 seconds. The AI samples the wrong answers across all your students and writes a short summary of recurring concept gaps, with citations to specific slides or textbook sections, plus suggested instructor actions ("re-explain in lecture", "share a worked example", "direct students to the textbook section on X").

This is most useful after a meaningful amount of student activity has accumulated. Empty courses produce empty analyses.

The instructor view roster (students with attempts, accuracy, weak unit pills, last-seen time) followed by the AI-generated concept-gap analysis flagging specific misunderstandings with slide citations and suggested instructor actions.
The roster (top) lets you drill into any student. Below it, the AI-generated concept-gap analysis names specific misunderstandings ("smooth ER function: structural feature vs. mechanistic explanation"), cites the slide where it lives, and suggests an instructor action.
What's not in the instructor dashboard: AI API costs, raw conversation logs, or anything operational. Those are handled separately by the project operator and aren't surfaced to the instructor or student UI.

What Biology Bot knows about 📚

The AI's responses, questions, and grading are grounded in the instructor's actual course materials — not the model's general knowledge of biology. Specifically:

SourceHow it's used
Lecture PPTs
17 unit decks, slides + speaker notes
Primary grounding for tutor dialogue, question generation, and citations. The bot references "Unit N, slide M" when pointing students to a source.
Course terms list
Per-unit key terms
Drives fill-in-the-blank questions and informs vocabulary the tutor expects students to know per unit.
Example exam
Worked exam with answer key
Style anchor — generated questions match the instructor's voice and difficulty calibration.
Open textbooks
TRU Pressbooks A&P I & II, CC BY 4.0
Matched chapter per unit. Cited as "(Unit N textbook)" when the bot points students to the textbook.

All source-material grounding is loaded once at deploy time. To update, the instructor shares new files and the operator re-runs the ingestion pipeline.

Behind the scenes

Biology Bot is an LTI 1.3 tool — the same standard Moodle uses to embed other external activities. Built in TypeScript on Node, with Postgres for student / session / progress data and Anthropic Claude for the AI calls. Source on GitHub: github.com/blamb/moodle-biology-bot.

Built by Brian Lamb at Thompson Rivers University, in collaboration with the BIOL 1592 / 1692 instructor. Borrows prompt patterns from the earlier open-margins project. Grounding includes the open A&P I and A&P II Pressbooks textbooks (Thompson Rivers University, CC BY 4.0).