A production-ready visual machine learning platform that enables users to build, train, and deploy ML models through an intuitive node-based interface. Perfect for students, educators, and ML practitioners who want to understand machine learning workflows visually.
- Visual Pipeline Builder: Drag-and-drop node-based ML pipeline creation using React Flow
- Multiple ML Algorithms: Linear Regression, Logistic Regression, Decision Trees, Random Forest
- AI-Powered Mentor: Integrated AI assistant using OpenAI, Anthropic, and Google Gemini for guidance
- Real-time Collaboration: Share projects with unique tokens for collaboration
- Advanced Data Processing: Complete preprocessing pipeline with encoding, scaling, and feature selection
- Interactive Visualizations: Chart.js integration for data exploration and model evaluation
- Project Management: Save, load, and manage multiple ML projects
- Admin Dashboard: Monitor users and system analytics
- Data Upload & Preview
- Missing Value Handling
- Data Cleaning & Transformation
- Feature Encoding (Label, One-Hot, Target)
- Feature Scaling (Standard, MinMax, Robust)
- Feature Selection
- Train/Test Split
- Model Training (Linear/Logistic Regression, Decision Trees, Random Forest)
- Predictions & Evaluation
- Confusion Matrix & Metrics Visualization
Tech Stack:
- Framework: React 19 + TypeScript
- Build Tool: Vite
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
- Routing: React Router v7
- UI/Styling: Tailwind CSS v4
- Visualizations: Chart.js, React Flow (@xyflow/react)
- Animations: Framer Motion
- Authentication: Google OAuth 2.0
Key Features:
- Code-split lazy loading for optimal performance
- Protected routes for student and admin access
- Real-time toast notifications
- Responsive design
- ESLint + Husky for code quality
Tech Stack:
- Framework: FastAPI
- Database: PostgreSQL with SQLAlchemy ORM
- Migrations: Alembic
- Authentication: JWT with Google OAuth
- Caching: Redis
- Background Tasks: Celery
- Storage: AWS S3
- ML Libraries: scikit-learn, pandas, numpy
- AI Integration: OpenAI, Anthropic, Google Gemini (via DynaRoute)
- Logging: Loguru
API Structure:
auth_student.py- Student authentication & registrationprojects.py- Project CRUD operationsdatasets.py- Dataset upload and managementpipelines.py- ML pipeline execution (traditional)genai_pipelines.py- AI-powered pipeline executiongenai.py- AI chatbot integrationtasks.py- Background task managementsharing.py- Project sharing functionalityknowledge_base.py- RAG-based knowledge systemsecrets.py- Secure secrets managementmentor/- AI Mentor system with personalized guidance
- Node.js 18+ and npm/yarn
- Python 3.10+
- PostgreSQL 14+
- Redis (for caching and background tasks)
- AWS account (optional, for S3 storage)
cd client
npm install
npm run devThe client will run on http://localhost:5173
- Install Python dependencies:
cd server
uv sync- Set up environment variables:
Create a
.envfile in the/serverdirectory with:
# Database
DATABASE_URL=postgresql://user:password@localhost/visual_ml
# Security
SECRET_KEY=your-secret-key-min-32-chars
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
# AWS S3 (optional)
USE_S3=true
S3_BUCKET=your-bucket-name
AWS_ACCESS_KEY_ID=your-access-key
AWS_SECRET_ACCESS_KEY=your-secret-key
# AI APIs
OPENAI_API_KEY=your-openai-key
ANTHROPIC_API_KEY=your-anthropic-key
GOOGLE_API_KEY=your-gemini-key- Run database migrations:
alembic upgrade head- Start the server:
uvicorn main:app --reloadThe server will run on http://localhost:8000
API documentation available at http://localhost:8000/docs
For background task processing:
celery -A app.workers.celery_app worker --loglevel=info
celery -A app.workers.celery_app beat --loglevel=infoVisual-ML/
βββ client/ # React frontend
β βββ src/
β β βββ app/ # Main app component & routing
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components (Auth, Dashboard, Playground)
β β βββ features/ # Feature-specific components
β β βββ store/ # Zustand state management
β β βββ hooks/ # Custom React hooks
β β βββ config/ # Configuration files
β β βββ utils/ # Utility functions
β β βββ types/ # TypeScript type definitions
β βββ public/ # Static assets
β βββ package.json
β
βββ server/ # FastAPI backend
β βββ app/
β β βββ api/v1/ # API endpoints
β β βββ core/ # Core configuration & security
β β βββ db/ # Database configuration
β β βββ models/ # SQLAlchemy models
β β βββ schemas/ # Pydantic schemas
β β βββ services/ # Business logic services
β β βββ ml/ # ML pipeline engine & nodes
β β β βββ algorithms/ # ML algorithm implementations
β β β βββ nodes/ # Pipeline node definitions
β β β βββ providers/ # AI provider integrations
β β β βββ engine.py # Pipeline execution engine
β β β βββ genai_engine.py # AI-powered pipeline engine
β β βββ mentor/ # AI Mentor system
β β βββ tasks/ # Celery background tasks
β β βββ utils/ # Utility functions
β β βββ workers/ # Celery worker configuration
β βββ models/ # Trained model artifacts
β βββ uploads/ # Uploaded datasets
β βββ alembic/ # Database migrations
β βββ main.py # FastAPI application entry
β βββ pyproject.toml
β
βββ readme.md # This file
- Sign Up/Sign In: Create an account or use Google OAuth
- Create Project: Start a new ML project from the dashboard
- Upload Data: Upload your CSV dataset
- Build Pipeline: Use the visual node editor to:
- Preview and clean data
- Handle missing values
- Encode categorical features
- Scale numerical features
- Split train/test data
- Train ML models
- Evaluate results
- Get AI Help: Use the AI Mentor for guidance and explanations
- Share Projects: Generate share links for collaboration
- Admin Login: Access at
/admin/login - Monitor Users: View student analytics and activity
- System Overview: Monitor platform usage and performance
- JWT-based authentication with refresh tokens
- Google OAuth 2.0 integration
- Password hashing with Argon2
- CORS protection
- Request validation with Pydantic
- Rate limiting (configurable)
- Secure secrets management
- Environment-based configuration
- Pre-configured for Vercel deployment
- Build:
npm run build - Preview:
npm run preview
- WSGI server: Uvicorn with workers
- Database: PostgreSQL with connection pooling
- Caching: Redis for performance
- Storage: AWS S3 for scalability
- Environment: Set
ENVIRONMENT=production
Recommended Stack:
- Frontend: Vercel
- Backend: Railway, Render, or AWS
- Database: Neon, Supabase, or AWS RDS
- Cache/Queue: Redis Cloud or AWS ElastiCache
- Storage: AWS S3
| Layer | Technologies |
|---|---|
| Frontend | React, TypeScript, Vite, TailwindCSS, React Query, Zustand |
| Backend | FastAPI, SQLAlchemy, Pydantic, Celery |
| Database | PostgreSQL, Redis |
| ML/AI | scikit-learn, pandas, numpy, OpenAI, Anthropic, Gemini |
| DevOps | Alembic, Uvicorn, Docker-ready |
| Storage | AWS S3, Local filesystem |