Skip to content

Latest commit

 

History

History
111 lines (91 loc) · 4.08 KB

File metadata and controls

111 lines (91 loc) · 4.08 KB

AI Note Taker App - Project Overview

Application Overview

An AI-powered note taker app that automatically joins meetings, transcribes conversations, and generates AI summaries.

Core Flow

  1. User authentication via Google OAuth 2
  2. User grants Google Calendar access on home screen
  3. Webhook syncs Google Calendar events
  4. Bot automatically joins meetings with the user
  5. Live transcription during meetings
  6. Post-meeting transcription storage and AI summary generation

Tech Stack

Backend - Java Service

  • Language: Java
  • Framework: Spring Boot
  • Build Tool: Maven
  • Database: PostgreSQL
  • DB Migrations: Flyway

Integration & Communication

  • Message Queue: Kafka (for triggering Python AI service)
  • Schema Management: Protocol Buffers (protobuf)
  • Service Communication: gRPC (primary), HTTP, Webhooks
  • External APIs: Google OAuth 2, Google Calendar webhooks

AI Service (External)

  • Language: Python (separate service)
  • Triggered via: Kafka events
  • Purpose: Transcription and AI summary generation

Architecture Components

  • Java Spring Boot main service
  • PostgreSQL database with Flyway migrations
  • Kafka message broker
  • Python AI service (external)
  • Google OAuth 2 integration
  • Google Calendar webhook integration
  • gRPC service definitions
  • Protocol Buffer schemas

MVP Features

1. Google OAuth 2 Authentication

  • Endpoint 1: Initiate OAuth flow with client ID, secret, and redirect URI
  • Endpoint 2: Handle redirect callback and receive access token from Google
  • Standard OAuth 2 authorization code flow implementation

2. Google Calendar Integration

  • Use access token to request Google Calendar scope
  • Implement webhook-based calendar sync
  • Real-time event synchronization from Google Calendar

3. Meeting Bot Integration

  • Domain Event: Emit meeting start event when calendar meeting begins
  • External Service Consumption: Python service consumes meeting start event
  • Bot Behavior: External service deploys bot to join meeting
  • Meeting End Event: External service emits meeting end event with transcription
  • Event Consumption: Java service consumes meeting end event and processes transcription

4. AI Summary Generation (Temporal Workflow)

  • Temporal Integration: Use Temporal workflow engine for long-running processes
  • RPC Call: Make gRPC call to external AI service for summary generation
  • Workflow Completion: Store generated summary and complete Temporal workflow
  • Async Processing: Handle AI summary generation as background workflow

Event Flow

  1. Meeting Start → Domain Event → External Service Bot Joins
  2. Meeting End → External Service Event → Transcription Received
  3. Transcription → Temporal Workflow → AI Summary RPC → Summary Stored

Microservices Architecture (3 Services)

1. Auth Service

  • Google OAuth 2 flow implementation
  • User authentication & JWT management
  • Token validation for other services
  • Database: User auth data, OAuth tokens

2. User Service

  • User profiles, settings, preferences
  • Account management
  • Database: User profiles, settings

3. Calendar Service (Extended Responsibilities)

  • Google Calendar integration & webhooks
  • Meeting lifecycle management (creation, status tracking)
  • Transcription handling (storage, processing)
  • Bot coordination (domain events for external service)
  • Temporal workflow integration (AI summary generation)
  • gRPC calls to external AI service
  • Database: Calendar events, meetings, transcriptions, summaries, temporal workflows

Event-Driven Communication

  • No separate Event Service
  • Kafka consumers/producers embedded in each service
  • Each service configuration includes:
    • Kafka broker URLs
    • Schema Registry URL
    • Topic configurations
    • Consumer/producer properties

Kafka Topics

  • meeting-start-events (Calendar → External Bot Service)
  • meeting-end-events (External Bot Service → Calendar)
  • transcription-ready-events (Internal Calendar Service workflows)

Next Steps

Ready to implement features step by step as directed.