A modern web application for managing OpenAI assistants with a Vue.js frontend and FastAPI backend.
- Frontend: https://vue-multiagent-frontend-129438231958.us-central1.run.app
- Backend: https://vue-multiagent-backend-129438231958.us-central1.run.app
- API Documentation: https://vue-multiagent-backend-129438231958.us-central1.run.app/docs
- π User Authentication - Secure JWT token authentication with bcrypt password hashing
- π€ Assistant Management - Create, edit, update, and delete OpenAI assistants with full CRUD operations
- π¬ Real-time Chat - Live chat with responses using http sse connections
- π File Management - Upload and manage files with OpenAI code interpreter integration
- π Live Updates - support for real-time chat and assistant interactions
- π± Responsive Design - Mobile-first design with Tailwind CSS
- βοΈ Cloud Ready - Fully deployed on Google Cloud Platform with Cloud Run and Cloud SQL
- π― Assistant-Specific Threads - Each assistant maintains its own conversation history
- π§ Form Validation - Robust form validation with Vue composables
- Fixed image display after browser refresh - images now persist correctly
- Resolved OpenAI file purpose issue - images use
purpose='vision'(downloadable) instead ofpurpose='assistants' - Fixed timestamp display showing "Jan 21, 1970" - now shows correct dates with proper Unix timestamp conversion
- Fixed image type recognition - properly detects
image_file,image, andimage/*types - Removed authentication requirement from image endpoint - allows browser
<img>tags to load images - Fixed image URL routing - uses absolute backend URLs instead of relative paths that caused 404 errors
- Added complete password recovery workflow with email delivery
- Implemented Gmail SMTP integration with App Password authentication
- Created secure JWT reset tokens with 1-hour expiry
- Designed HTML email templates with reset links
- Added ForgotPasswordView and ResetPasswordView components
- Created comprehensive
docs/directory with architecture, deployment, and authentication guides - Added detailed changelog tracking all project changes
- Included token optimization strategies for cost management
- Frontend: Vue 3 + TypeScript + Vite + Tailwind CSS + Pinia
- Backend: FastAPI + SQLAlchemy + MySQL 8.0
- Real-time: WebSocket with native implementation
- Deployment: Docker + Google Cloud Run + Cloud SQL
- Authentication: JWT tokens with bcrypt hashing
- Storage: Google Cloud SQL with Secret Manager
- Node.js 18+
- Python 3.11+
- MySQL 8.0+
- OpenAI API key
- Clone the repository
git clone https://github.com/sbayer2/VueMultiAgentCreator.git
cd VueMultiAgentCreator- Set up environment variables
# Backend
cd backend
cp .env.example .env
# Edit .env with your configurations
# Frontend
cd ../frontend
cp .env.example .env.local
# Edit .env.local with your API URL- Install dependencies
# Backend
cd backend
pip install -r requirements.txt
# Frontend
cd ../frontend
npm install- Start development servers
# Backend (from backend directory)
python main.py
# Frontend (from frontend directory)
npm run dev# Start all services (frontend, backend, MySQL, Redis)
docker-compose up
# Build for production
docker-compose up --buildThe application is currently deployed on Google Cloud Platform:
- Set up Google Cloud project
gcloud config set project mythic-aloe-467602-t4- Deploy using Cloud Build
gcloud builds submit --config cloudbuild.yaml- Monitor logs
gcloud logging read "resource.type=cloud_run_revision" --limit=20 --project=mythic-aloe-467602-t4Visit the interactive API documentation:
- Swagger UI: https://vue-multiagent-backend-129438231958.us-central1.run.app/docs
- ReDoc: https://vue-multiagent-backend-129438231958.us-central1.run.app/redoc
VueMultiAgentCreator/
βββ frontend/ # Vue.js 3 frontend
β βββ src/
β β βββ components/ # Reusable Vue components
β β β βββ auth/ # Authentication components
β β β βββ chat/ # Chat interface components
β β β βββ assistant/ # Assistant management
β β β βββ common/ # Base UI components
β β βββ views/ # Page components
β β βββ stores/ # Pinia state management
β β βββ composables/ # Vue composables (useForm, useWebSocket)
β β βββ layouts/ # Layout components
β β βββ utils/ # Utilities and API client
β βββ public/ # Static assets
β βββ nginx.conf # Production nginx config
βββ backend/ # FastAPI backend
β βββ api/ # API endpoints
β β βββ auth.py # Authentication routes
β β βββ assistants.py # Assistant CRUD operations
β β βββ chat.py # Chat and messaging
β β βββ files.py # File upload/management
β βββ models/ # SQLAlchemy database models
β βββ utils/ # Configuration and utilities
β βββ main.py # FastAPI application entry point
βββ cloudbuild.yaml # Cloud Build configuration
βββ docker-compose.yaml # Local development setup
- Vue 3 Composition API with TypeScript
- Pinia for state management with persistence
- Tailwind CSS for responsive styling
- Form validation with custom composables
- Real-time chat with WebSocket integration
- File upload with drag-and-drop support
- FastAPI with automatic OpenAPI documentation
- SQLAlchemy ORM with MySQL database
- JWT authentication with bcrypt password hashing
- WebSocket support for real-time communication
- OpenAI Assistants API integration
- File management with OpenAI code interpreter
- User: Authentication and user management
- UserAssistant: Assistant configurations and metadata
- FileMetadata: File upload tracking and management
# Frontend linting and type checking
cd frontend
npm run lint
npm run type-check
# Backend testing
cd backend
python -m pytest- Health Check:
GET /health - Database Test:
GET /test-db - Authentication Test: Register/login flow
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
npm run dev # Start development server
npm run build # Production build
npm run preview # Preview production build
npm run lint # Lint and auto-fix
npm run type-check # TypeScript type checkingpython main.py # Start development server
uvicorn main:app --reload # Alternative start methodgcloud builds submit --config cloudbuild.yaml # Full deployment
gcloud logging read "resource.type=cloud_run_revision" --limit=20 # Check logsMIT License - see the LICENSE file for details.
- Image Display After Refresh: Fixed OpenAI file purpose and URL routing - images now persist after browser refresh (2025-10-21)
- Timestamp Display: Fixed "Jan 21, 1970" bug with proper Unix timestamp conversion (2025-10-21)
- Image Type Recognition: Fixed filter to detect all image types (image_file, image, image/*) (2025-10-21)
- Image Authentication: Removed auth requirement from image endpoint for browser compatibility (2025-10-21)
- Update Assistant Button: Fixed form validation and data population (2025-09-18)
- File Management: Implemented proper MMACTEMP pattern for image/document separation
- Authentication Flow: JWT token management with proper validation
- Chat Initialization: Assistant-specific thread management working correctly
For issues and feature requests, please visit the GitHub Issues page.