A smart assistant powered by the Tule Smart Response Intent Engine, a lightweight, LLM-driven classification layer that parses natural language queries and deterministically routes them to the appropriate UI component or handler.
- Natural language queries about dining hours, locations, and services
- Real-time dining center status and hours
- Interactive campus maps with dining location markers
- Smart routing to official UC Merced dining pages
- Custom UC Merced campus map with dining locations
- Pan, zoom, and click interactions
- Location-specific information popups
- Mobile-responsive design
- AWS ECS with Fargate deployment
- AWS Bedrock integration for enterprise-grade AI
- Auto-scaling and high availability
- Production-ready security and monitoring
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────────┐
│ React App │───▶│ Express Proxy │───▶│ AWS Bedrock │
│ (Frontend) │ │ (Backend) │ │ (Claude Haiku) │
└─────────────────┘ └──────────────────┘ └─────────────────────┘
- Frontend: React 19 + TypeScript + Vite
- Backend: Express.js proxy server
- AI: AWS Bedrock (Claude Haiku)
- Styling: TailwindCSS with Apple design system
- State: Zustand with localStorage persistence
- Deployment: Docker + AWS ECS with Fargate
- Node.js 18+
- AWS account with Bedrock access enabled
- AWS CLI configured with appropriate IAM permissions
# Clone the repository
git clone https://github.com/your-username/tule-ai.git
cd tule-ai
# Install dependencies
npm run setup
# Set environment variables (for local development)
export AWS_REGION=us-east-1
# For production, IAM roles are used automatically
# Start development servers
npm run dev:fullnpm run dev:full # Start both frontend and backend
npm run dev # Frontend only (port 5173)
npm run dev:server # Backend only (port 3001)
npm run build:full # Build both frontend and backend
npm run build # Frontend build
npm run build:server # Backend build
npm run lint # ESLint check
npm run lint:fix # Fix linting errors
npm run type-check # TypeScript type checking
npm test # Unit tests with Vitest
npm run test:e2e # E2E tests with PlaywrightThe application is designed for AWS ECS with Fargate deployment:
# Deploy to AWS ECS
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com
docker build -t tule-ai .
docker tag tule-ai:latest <account-id>.dkr.ecr.us-east-1.amazonaws.com/tule-ai:latest
docker push <account-id>.dkr.ecr.us-east-1.amazonaws.com/tule-ai:latest
aws ecs update-service --cluster tule-ai-cluster --service tule-ai-service --force-new-deployment