An AI-powered platform that helps journalists and citizens understand what happened at Arizona school board meetings. The system monitors YouTube channels for new board meeting videos, allows admins to upload transcripts, and provides a conversational AI chatbot that answers questions using RAG (Retrieval-Augmented Generation) powered by AWS Bedrock.
Watch the complete demonstration of The Beam School Board AI:
Customers are responsible for making their own independent assessment of the information in this document.
This document:
(a) is for informational purposes only,
(b) references AWS product offerings and practices, which are subject to change without notice,
(c) does not create any commitments or assurances from AWS and its affiliates, suppliers or licensors. AWS products or services are provided "as is" without warranties, representations, or conditions of any kind, whether express or implied. The responsibilities and liabilities of AWS to its customers are controlled by AWS agreements, and this document is not part of, nor does it modify, any agreement between AWS and its customers, and
(d) is not to be considered a recommendation or viewpoint of AWS.
Additionally, you are solely responsible for testing, security and optimizing all code and assets on GitHub repo, and all such code and assets should be considered:
(a) as-is and without warranties or representations of any kind,
(b) not suitable for production environments, or on production or other critical data, and
(c) to include shortcuts in order to support rapid prototyping such as, but not limited to, relaxed authentication and authorization and a lack of strict adherence to security best practices.
All work produced is open source. More information can be found in the GitHub repo.
| Description | Link |
|---|---|
| Overview | Overview |
| Architecture | Architecture |
| Quick Start | Quick Start |
| Quick Start | Quick Start |
| Documentation | Documentation |
| Credits | Credits |
| License | License |
This application combines AI-powered conversational intelligence with school board meeting transcripts to make local government more accessible. Built on a serverless AWS architecture, the system monitors 72 Arizona school district YouTube channels for new board meeting videos, provides an admin dashboard for transcript management, and delivers a public-facing chatbot that answers questions with citations from indexed meeting transcripts.
- AI-Powered Q&A powered by AWS Bedrock with Claude Haiku 4.5 and Amazon Titan Embed Text v2
- YouTube Channel Monitoring using YouTube Data API v3 to discover new board meeting videos every 6 hours
- Manual Transcript Upload supporting transcript past and audio/video files (processed via AWS Transcribe)
- Per-District Chatbots with district-scoped RAG queries and citation support
- Admin Dashboard with Cognito authentication for district management, transcript uploads, and analytics
- Usage Analytics tracking queries per district, answer rates, and top community concerns
- 72 Arizona Districts pre-configured with YouTube channel URLs
- Fully Serverless with no infrastructure to manage — Lambda, DynamoDB, S3, Bedrock, Amplify
- Frontend: Next.js application hosted on AWS Amplify with Cognito authentication
- Backend: AWS CDK deployable infrastructure — API Gateway, Lambda, Bedrock Knowledge Base, DynamoDB, S3, Transcribe
For a detailed deep dive into the architecture, including component interactions, data flow, DynamoDB schemas, and cost analysis, see docs/architectureDeepDive.md.
| Requirement | Version | Purpose |
|---|---|---|
| Node.js | 20+ | Lambda runtime and frontend |
| AWS CLI | 2.x | AWS resource management |
| AWS CDK | 2.x | Infrastructure deployment |
| AWS Account | — | With Bedrock model access enabled |
| YouTube Data API v3 Key | — | Channel monitoring |
npm install -g aws-cdkIn the AWS Console, navigate to Bedrock → Model access and enable:
- Amazon Titan Embed Text v2
- Anthropic Claude Haiku 4.5
Both must be enabled in your deployment region (default: us-west-2).
- Go to Google Cloud Console
- Create a project (or select existing)
- Enable YouTube Data API v3 under APIs & Services → Library
- Create an API key under APIs & Services → Credentials
- Copy the key
- Go to developer settings Personal access tokens (classic)
- Click Generate a new token (classic)
- Name it in the Note section
- Select scopes
repo&admin:repo_hook - Click Generate token
- Copy the token
- Configure AWS credentials
# For AWS SSO (recommended)
aws sso login --profile your-profile-name
export AWS_PROFILE=your-profile-name
export AWS_REGION=your-region- Clone the repository
git clone https://github.com/ASUCICREPO/schoolboard-chatbot.git
cd schoolboard-chatbot- Run the deployment script
bash ./deploy.sh- API Documentation - Comprehensive API reference for all endpoints
- Architecture Deep Dive - Detailed system architecture and design
- Deployment Guide - Deployment instructions, prerequisites and step-by-steps
- User Guide - Step-by-step usage instructions
- Modification Guide - Guide for customizing and extending the system
- Model Justification - Rationale for AI model selection
This application was developed by:
Built for The Beam at the ASU Walter Cronkite School of Journalism and Mass Communication.
See LICENSE file for details.
