Back to Projects
In Production

AI Transcript Platform

Production transcription pipeline that converts video into clean, WCAG-compliant HTML transcripts for real university programs.

Research Analyst / Software Developer (AI + Full-Stack)
Arizona State University — Learning Enterprise
2025 — Present (in production usage)
Tempe, AZ (hybrid)
Backend & CloudFull-Stack AIEducational TechAccessibility

Tech Stack

Next.js 15React 19TypeScriptTailwindshadcn/uiFastAPIPythonRedisAWS S3DockerAWS ECSAWS ECRAWS ALBJWTCAS SSOGitHub Actions

AI Transcript is a production transcription pipeline built to generate clean, accessible transcript outputs for real university programs. It handles file ingestion, background processing, and output formatting into structured, web-friendly HTML designed for accessibility. The system reduces manual formatting overhead, speeds up transcript turnaround, and standardizes output quality across courses.

Why I Built This

I wanted transcripts to be faster to generate and easier to use — without sacrificing accessibility. The goal was a system that turns raw video into structured, web-friendly HTML that works for everyone, including screen reader users, while reducing the manual formatting load for course teams.

Overview

AI Transcript is a containerized, production-grade pipeline that processes uploaded media, transcribes it via an external ASR provider, and generates WCAG-aligned HTML output. It supports multiple video/audio formats, chunks large files safely, and returns results through an async task system.

What It Delivers

  • Uploads → background processing → transcript + accessible HTML output
  • WCAG-conscious structure: skip links, landmarks, heading hierarchy, keyboard navigation support
  • Authentication using ASU SSO (CAS) + JWT cookies for protected routes
  • Cloud-native deployment with CI/CD and service stability checks

Architecture

Upload → API container → S3 (SHA256-hash dedup)
API → Redis queue → returns task_id
Worker polls Redis → downloads from S3
Worker → ASR provider → transcript result
Worker → updates Redis with transcript + HTML
Frontend polls /tasks/{id} → API → Redis → returns transcript/HTML
  • Microservices split: Web UI, API, Worker
  • Redis used for task queue + session/task state
  • S3 used for file storage with hash-based deduplication
  • Accessible HTML generated via Jinja2 templates

Accessibility Pipeline

  • Landmarks: header/main/footer roles
  • Skip link to main content
  • ARIA region labels on transcript sections
  • Paragraph IDs for deep-linking
  • prefers-reduced-motion support
  • Keyboard navigation tested

Authentication & Security

  • ASU SSO via CAS login → ticket validation → JWT set as httpOnly cookie
  • Secure cookie settings in production (secure + samesite lax)
  • Security headers and proxy middleware for ALB HTTPS detection

Infrastructure & Deployment

  • AWS ECS services behind ALB (path-based routing)
  • Images stored in ECR; deploy via GitHub Actions
  • Environment separation: local Docker Compose vs production ECS + managed Redis

Research & Evaluation (ASR Quality)

I also worked on ASR evaluation methodology using Word Error Rate (WER) and Character Error Rate (CER) to quantify transcription quality, compare outputs, and guide improvements in chunking, formatting, and post-processing.

Impact

12,760+

Learners Served

100s/term

Manual Hours Saved

TODO

Minutes Processed

TODO

Courses Supported

Screenshots

Screenshot coming soon (UI + transcript output)

Screenshot coming soon (upload + task status)

Interested in this project?

Let's discuss how I built it or explore collaboration opportunities.