A full-stack, event-driven Learning Management System (LMS) powered by 4 independent AI microservices.
This platform uses Multimodal Vision telemetry, Background Audio processing, and Interactive Chat to monitor student focus, summarize learned topics, and generate custom pop-quizzes.
- Vanilla HTML / CSS / JS
- Web Audio API
- WebRTC
- Light Theme UI
- 👁️ vision-agent: Analyzes webcam frames for focus scoring
- 🤖 tutor-agent: Handles chatbot interactions, warnings, and analytics
- 👂 hearing-agent: Summarizes background audio into learning topics
- 📝 quiz-agent: Generates JSON-based quizzes
- Google Cloud Run (Hosting)
- Vertex AI (Gemini 2.5 Flash)
- BigQuery (Database)
-
Login using an account with free trial credits
-
Open Cloud Shell (top-right terminal icon)
-
Open Cloud Shell Editor
-
In editor:
- Click File (top-right) → Open Folder
- Open:
home/your_username
-
Open terminal inside editor
Run the following commands in terminal:
gcloud auth login
gcloud config set project YOUR_PROJECT_IDgcloud services enable run.googleapis.com aiplatform.googleapis.com bigquery.googleapis.com cloudbuild.googleapis.comgit clone https://github.com/community-gdgvtu/GCP-AI-Learning-Portal.git
cd GCP-AI-Learning-PortalIn all agent folders (main.py):
PROJECT_ID = "your_project_id"- Go to Google Cloud Main Page
- Click ☰ Menu (top-left, three horizontal lines)
- Select BigQuery
- Open a New SQL Editor Tab
- Replace
YOUR_PROJECT_IDwith your actual project ID - Paste and run the following:
CREATE SCHEMA IF NOT EXISTS `YOUR_PROJECT_ID.focus_db`;
CREATE TABLE IF NOT EXISTS `YOUR_PROJECT_ID.focus_db.session_logs` (
session_id STRING,
timestamp TIMESTAMP,
event_type STRING,
focus_score INT64,
distraction_reason STRING,
user_text STRING,
ai_text STRING
);cd quiz-agent
gcloud run deploy quiz-api --source . --region us-central1 --allow-unauthenticated --memory 2Gi --min-instances 1👉 After deployment, copy the URL and update in hearing-agent:
QUIZ_AGENT_URL = "https://your-quiz-api-url.com/api/quiz"cd ../tutor-agent
gcloud run deploy tutor-api --source . --region us-central1 --allow-unauthenticated --memory 2Gi --min-instances 1👉 After deployment, copy the URL and update in vision-agent:
CHAT_AGENT_URL = "https://your-tutor-api-url.com/api/chat"cd ../hearing-agent
gcloud run deploy hearing-api --source . --region us-central1 --allow-unauthenticated --memory 2Gi --min-instances 1cd ../vision-agent
gcloud run deploy vision-api --source . --region us-central1 --allow-unauthenticated --memory 2Gi --min-instances 1Update index.html:
const VISION_API_URL = "https://vision-api-URL.run.app/api/vision";
const CHAT_API_URL = "https://tutor-api-URL.run.app/api/chat";
const ANALYTICS_API_URL = "https://tutor-api-URL.run.app/api/sessions";
const HEARING_API_URL = "https://hearing-api-URL.run.app/api/hearing";
const LOG_SCORE_URL = "https://quiz-api-URL.run.app/api/log_score";Create a new file named Dockerfile in your project directory and copy the following contents into it:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80gcloud run deploy frontend-ui --source . --region us-central1 --allow-unauthenticated --port 80👉 You will receive a live HTTPS URL
- Open frontend URL
- Allow camera & microphone
- Click Start Session
- Real-time focus detection
- Audio-based learning insights
- AI-powered chatbot
- Automatic quiz generation
- Analytics using BigQuery
- Frontend: HTML, CSS, JavaScript
- Backend: Python (Flask)
- AI: Vertex AI (Gemini)
- Cloud: Google Cloud Run
- Database: BigQuery