A modern, AI-powered matchmaking web application that uses multi-agent systems to facilitate meaningful connections through personality assessment and real-time compatibility analysis.
- Interactive Personality Assessment: Comprehensive questionnaire to build detailed user profiles
- AI-Powered Matching: Advanced compatibility algorithms using personality data
- Live AI Conversations: Watch AI avatars interact in real-time to assess compatibility
- Relationship Simulations: AI agents navigate realistic scenarios to test long-term compatibility
- Real-time Communication: WebSocket-powered live updates and notifications
- Modern Web Interface: Responsive React application with Material-UI components
- Comprehensive Analytics: Detailed compatibility reports and insights
- React 18 with TypeScript
- Vite for fast development and building
- Material-UI (MUI) for component library
- Redux Toolkit for state management
- Socket.IO for real-time communication
- Recharts for data visualization
- FastAPI with Python 3.11+
- PostgreSQL for relational data
- Redis for caching and sessions
- SQLAlchemy with async support
- WebSocket support for real-time features
- JWT authentication
- AgentScope framework for multi-agent orchestration
- Google Gemini API for AI-powered conversations
- Mem0 for advanced memory management
- ChromaDB for vector storage
- Python 3.11+ for backend development
- Node.js 18+ for frontend development
- Remote PostgreSQL database access
- Remote Redis cache access
-
Clone the repository
git clone <repository-url> cd ai-matchmaker
-
Set up development environment
scripts\setup-dev.bat -
Configure environment variables
- Edit
.envfile with your remote database URLs and API keys - Set
DATABASE_URLto your PostgreSQL connection string - Set
REDIS_URLto your Redis connection string - Set
GEMINI_API_KEYto your Google Gemini API key
- Edit
-
Start development servers
scripts\start-dev.bat -
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
-
Install dependencies
# Backend py -m venv venv venv\Scripts\activate pip install -r requirements.txt # Frontend cd frontend npm install
-
Start development servers
# Backend (in one terminal) cd backend py -m uvicorn main:app --reload --host 0.0.0.0 --port 8000 # Frontend (in another terminal) cd frontend npm run dev
# Set up environment (Windows)
scripts\setup-dev.bat
# Start development servers (Windows)
scripts\start-dev.bat
# Manual start
make backend-dev # Start backend only
make frontend-dev # Start frontend onlymake test # Run all tests
make test-frontend # Run frontend tests
make test-backend # Run backend tests
make lint # Run lintingmake docker-build # Build Docker images
make docker-up # Start Docker services
make docker-down # Stop Docker services
make docker-logs # View logsmake db-migrate # Run database migrations
make db-reset # Reset databaseThe project uses a comprehensive testing strategy:
- Vitest for unit testing
- React Testing Library for component testing
- ESLint for code quality
- pytest for unit and integration testing
- Hypothesis for property-based testing
- pytest-asyncio for async testing
# All tests
make test
# Frontend only
cd frontend && npm run test
# Backend only
cd backend && python -m pytest tests/ -vmake builddocker-compose -f docker-compose.prod.yml up -dKey environment variables for development and production:
# Security
SECRET_KEY=your-production-secret-key
DEBUG=false
ENVIRONMENT=production
# Remote Database
DATABASE_URL=postgresql+asyncpg://user:pass@host:port/db
# Remote Redis
REDIS_URL=redis://user:pass@host:port
# AI Services
GEMINI_API_KEY=your-gemini-api-key
# File Storage (Optional)
AWS_ACCESS_KEY_ID=your-aws-key
AWS_SECRET_ACCESS_KEY=your-aws-secret
S3_BUCKET_NAME=your-s3-bucketai-matchmaker/
โโโ frontend/ # React TypeScript frontend
โ โโโ src/
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Page components
โ โ โโโ store/ # Redux store and slices
โ โ โโโ hooks/ # Custom React hooks
โ โ โโโ theme/ # Material-UI theme
โ โโโ public/ # Static assets
โ โโโ package.json
โโโ backend/ # FastAPI backend
โ โโโ app/
โ โ โโโ api/ # API endpoints
โ โ โโโ core/ # Core configuration
โ โ โโโ models/ # Database models
โ โ โโโ websocket/ # WebSocket handlers
โ โโโ main.py
โโโ ai_matchmaker/ # Original AI agent system
โ โโโ agents/ # AI agent implementations
โ โโโ models/ # Data models
โ โโโ utils/ # Utilities
โโโ tests/ # Test suites
โโโ scripts/ # Deployment scripts
โโโ .github/workflows/ # CI/CD pipelines
โโโ docker-compose.yml # Development environment
โโโ Makefile # Development commands
- Vite config:
frontend/vite.config.ts - TypeScript config:
frontend/tsconfig.json - ESLint config:
frontend/.eslintrc.cjs
- FastAPI settings:
backend/app/core/config.py - Database models:
backend/app/models/ - API routes:
backend/app/api/v1/
- 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
- Follow TypeScript/Python type hints
- Write tests for new features
- Use conventional commit messages
- Ensure all tests pass before submitting PR
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the API documentation when running locally
- Mobile app development
- Advanced AI personality models
- Video chat integration
- Social features expansion
- Multi-language support
- Advanced analytics dashboard