Rewrite server.js to use google-auth-library for generating Google ID
tokens when authenticating requests to the backend Cloud Run service.
Key changes:
- Replace metadata server token fetch with GoogleAuth client
- Implement proper SSE streaming with raw byte passthrough
- Add health check endpoint for Cloud Run monitoring
- Update server to listen on 0.0.0.0:8080 for Cloud Run compatibility
- Add environment variable validation at startup
- Improve error handling and logging throughout request lifecycle
Update Dockerfile to install google-auth-library dependency and expose
port 8080 instead of port 80.
Replace Python http.server with Express to handle:
- Large IAP JWT headers that caused 500 errors
- API request proxying with GCP identity tokens
- Static React build serving with SPA fallback
Update api.ts to use relative URLs in production for proxy routing.
Initialize complete frontend project structure with the following components:
- React 18 + Vite development environment with TypeScript
- Tailwind CSS for styling with custom animations
- Radix UI components for accessible UI primitives
- React Router for navigation between landing and chat pages
- TanStack Query for efficient API data management
Key features implemented:
- Landing page with hero, features, and footer sections
- Real-time chat interface with message history
- Study/Trading mode toggle for different interaction types
- Custom hooks for chat state management
- API integration layer with backend service
- Responsive design with scroll areas and card layouts
Docker deployment configuration:
- Multi-stage Dockerfile with Node.js build and Nginx production
- Custom nginx configuration for SPA routing on port 3000
- Optimized production build process
Development tools:
- ESLint for code quality
- TypeScript for type safety
- PostCSS with Autoprefixer
- Environment variable configuration with .env.example