This repository supports the pilot deployment of an AI tutoring chatbot for students at Benedict College under the Minority Serving – Cyberinfrastructure Consortium (MS-CC) initiative.
The pilot has two primary objectives:
-
Deploy a working AI tutoring chatbot that:
- Serves as a Socratic instructional assistant
- Captures structured student feedback
- Logs interaction data for research purposes
-
Establish a reusable MS-CC reference architecture that can be replicated across additional campuses.
This repository contains documentation and the GitHub Pages landing page used to deploy and describe the chatbot system.
Initial deployment is intended for:
- Students of Benedict College (pilot phase)
Future phases may include:
- Faculty collaborators
- Student researchers
- MS-CC partner campuses
- User accesses chatbot via a shared link
- User authenticates using Gmail (authentication only; not stored)
- Landing page loads (hosted on GitHub Pages)
- Dialogflow CX Messenger widget loads
- Student interacts with the chatbot
- When the chat closes, a JavaScript event triggers the feedback interface
- Feedback is submitted and stored in structured datasets
- Landing page hosted on GitHub Pages
- Embedded Dialogflow CX Messenger widget
- JavaScript event listener triggers post-chat feedback form
- Dialogflow CX Messenger Widget
- Dialogflow CX Deterministic Flow Agent
The agent uses structured flows to:
- Guide Socratic questioning
- Capture interaction signals
- Log conversational events
- Feedback UI hosted on Google Cloud Run
- Triggered when chat session ends
- Submits structured responses to BigQuery
-
BigQuery dataset: Interaction Logs
- Prompts
- Responses
- Events
-
BigQuery dataset: Website Feedback Responses
This project is IRB-approved.
- Users authenticate via Google before launching the chatbot.
- Dialogflow CX Messenger uses an OAuth web client for authenticated chat access.
- The feedback API validates a Google ID token before accepting submissions.
- Email addresses are not stored in project datasets.
- A pseudonymous hash of the Google user subject is stored for research continuity.
The system collects:
- Chat interaction logs (prompts, responses, events)
- Structured feedback during interaction
- Post-interaction feedback responses
- Event timestamps
The project is designed to make collected datasets as anonymous as possible while preserving research utility.
/docs --> Architecture and governance documentation /landing-page --> GitHub Pages site source /architecture --> System diagrams
This repo now assumes:
- authenticated Dialogflow CX Messenger
- authenticated feedback submission
- pseudonymous research logging
Update the config object in logic.js:
dialogflowOauthClientIdUse the OAuth 2.0 Client ID created for Dialogflow CX Messenger Authorized API.feedbackOauthClientIdUse the OAuth 2.0 Client ID created for the website Google sign-in flow.feedbackApiUrlUse the deployed Cloud Run feedback endpoint.
Set these on the feedback API service in feedback-form/app.py and 'feedback-form/env.yaml':
PROJECT_ID=ms-cc-benedict-college-chatbotDATASET_ID=EduCyber_draft1_logsTABLE_ID=EduCyber_draft1_logs_tableGOOGLE_OAUTH_CLIENT_ID=<frontend sign-in OAuth client ID>ALLOWED_ORIGINS=<comma-separated frontend origins>PSEUDONYM_SALT=<random secret string>
Example ALLOWED_ORIGINS:
https://<your-github-username>.github.io,http://localhost:5500
Make sure the feedback table includes these additional columns:
auth_statusSTRINGauth_providerSTRINGgoogle_sub_hashSTRINGuser_domainSTRINGidentity_verified_atTIMESTAMP or STRING
- Configure the OAuth consent screen in Google Auth Platform.
- Create one OAuth web client for Dialogflow Messenger.
- Create one OAuth web client for the site sign-in flow.
- Add your GitHub Pages and localhost origins to both clients.
- Reconfigure Dialogflow CX Messenger to use Authorized API.
- Grant pilot users
Dialogflow API ClientandService Usage Consumer. - Deploy the updated feedback API with the environment variables above.
MIT License
