An AI-powered note taker app that automatically joins meetings, transcribes conversations, and generates AI summaries.
- User authentication via Google OAuth 2
- User grants Google Calendar access on home screen
- Webhook syncs Google Calendar events
- Bot automatically joins meetings with the user
- Live transcription during meetings
- Post-meeting transcription storage and AI summary generation
- Language: Java
- Framework: Spring Boot
- Build Tool: Maven
- Database: PostgreSQL
- DB Migrations: Flyway
- 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
- Language: Python (separate service)
- Triggered via: Kafka events
- Purpose: Transcription and AI summary generation
- 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
- 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
- Use access token to request Google Calendar scope
- Implement webhook-based calendar sync
- Real-time event synchronization from Google Calendar
- 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
- 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
- Meeting Start → Domain Event → External Service Bot Joins
- Meeting End → External Service Event → Transcription Received
- Transcription → Temporal Workflow → AI Summary RPC → Summary Stored
- Google OAuth 2 flow implementation
- User authentication & JWT management
- Token validation for other services
- Database: User auth data, OAuth tokens
- User profiles, settings, preferences
- Account management
- Database: User profiles, settings
- 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
- 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
meeting-start-events(Calendar → External Bot Service)meeting-end-events(External Bot Service → Calendar)transcription-ready-events(Internal Calendar Service workflows)
Ready to implement features step by step as directed.