Democratizing Machine Learning through Automated Model Development and Deployment
AutoML Platform revolutionizes machine learning by making it accessible to everyone, regardless of technical expertise. Our mission is to build an intuitive platform that automates the entire ML pipeline - from data preprocessing to model deployment - enabling users to focus on solving business problems rather than technical complexities.
- User Authentication: Secure authentication with Clerk
- Dataset Management: Upload, analyze, and manage datasets
- Automated ML: One-click model training with multiple algorithms
- Model Analytics: Performance metrics and visualization
- AI Chat Assistant: Powered by Google Gemini for ML guidance
- Magic Path: Intelligent workflow suggestions
- Model Export: Download trained models as .pkl files
- Public Gallery: Browse and download community models
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS 4 |
| Backend | Next.js API Routes, Prisma ORM, PostgreSQL |
| Database | PostgreSQL (Neon), Prisma Client |
| Authentication | Clerk (JWT-based) |
| ML Engine | Python, E2B Sandboxes, scikit-learn, pandas |
| AI Assistant | Google Gemini API |
| UI Components | Radix UI, Framer Motion, Lucide React |
| Styling | Tailwind CSS, CSS Custom Properties (Dark/Light Theme) |
| File Handling | JSZip, File Upload API |
graph TB
subgraph "Client Side"
A[Next.js Frontend]
B[React Components]
C[Tailwind UI]
end
subgraph "Authentication"
D[Clerk Auth]
E[JWT Middleware]
end
subgraph "API Layer"
F[Next.js API Routes]
G[Prisma ORM]
H[Google Gemini AI]
I[E2B Sandbox]
end
subgraph "Data Layer"
J[(PostgreSQL/Neon)]
K[File Storage]
L[Model Storage]
end
subgraph "ML Engine"
M[Python Runtime]
N[scikit-learn]
O[pandas/numpy]
P[Model Training]
end
A --> D
A --> F
B --> C
D --> E
E --> F
F --> G
F --> H
F --> I
G --> J
I --> M
M --> N
M --> O
N --> P
P --> L
style A fill:#000000
style F fill:#000000
style J fill:#336791
style M fill:#3776AB
erDiagram
Users {
string id PK
string clerkId
string email
string name
string avatar
timestamp createdAt
timestamp updatedAt
}
Datasets {
string id PK
string name
string description
string fileName
string filePath
int fileSize
string fileType
json columns
int rowCount
string userId FK
timestamp createdAt
timestamp updatedAt
}
MLModels {
string id PK
string name
string description
string algorithm
string modelType
float accuracy
float precision
float recall
float f1Score
json hyperParams
string pklFileName
string pklFilePath
int pklFileSize
int trainingTime
boolean isPublic
int downloadCount
string userId FK
string datasetId FK
timestamp createdAt
timestamp updatedAt
}
Conversations {
string id PK
string title
string userId FK
timestamp createdAt
timestamp updatedAt
}
Messages {
string id PK
string content
enum type
string modelUsed
int tokens
string conversationId FK
timestamp timestamp
}
MLModelTemplates {
string id PK
string slug
string name
string author
string description
string shortDesc
string category
string difficulty
float accuracy
string downloads
int likes
string lastUpdated
string license
json tags
string iconName
boolean isPopular
string gradient
float popularity
string trainingTime
string users
json useCases
json features
json advantages
json howItWorks
json bestFor
json parameters
string codeExample
timestamp createdAt
timestamp updatedAt
}
Users ||--o{ Datasets : creates
Users ||--o{ MLModels : trains
Users ||--o{ Conversations : has
Datasets ||--o{ MLModels : used_for
Conversations ||--o{ Messages : contains
MLModels }o--|| Datasets : trained_on
graph LR
A[Dataset Upload] --> B[Data Validation]
B --> C[Preprocessing]
C --> D[E2B Sandbox API]
D --> E[Python ML Training]
E --> F[Model Generation]
F --> G[Performance Metrics]
style D fill:#3776AB
style E fill:#FF6B6B
automl/
βββ π public/ # Static assets
β βββ file.svg # File icon
β βββ globe.svg # Globe icon
β βββ next.svg # Next.js logo
β βββ vercel.svg # Vercel logo
β βββ window.svg # Window icon
βββ π prisma/ # Database schema & migrations
β βββ schema.prisma # Prisma schema definition
β βββ migrations/ # Database migration files
β βββ migration_lock.toml # Migration lock file
β βββ 20250924172343_*/ # Migration folders
βββ π sandbox-python/ # Python ML environment
β βββ python/ # E2B Python sandbox config
β βββ e2b.Dockerfile # Docker environment
β βββ e2b.toml # E2B configuration
βββ π scripts/ # Utility scripts
β βββ seed.js # Database seeding script
β βββ SEED_README.md # Seeding instructions
β βββ setup-db.ps1 # PowerShell DB setup
β βββ setup-db.sh # Bash DB setup
βββ π src/
β βββ middleware.ts # Next.js middleware
β βββ π app/ # Next.js App Router
β β βββ favicon.ico # App favicon
β β βββ globals.css # Global styles
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Home page
β β βββ π api/ # API routes
β β β βββ auth/ # Authentication endpoints
β β β βββ chat/ # AI chat endpoints
β β β βββ create-model/ # Model creation API
β β β βββ datasets/ # Dataset management
β β β β βββ route.ts # Main dataset API
β β β β βββ [id]/ # Individual dataset routes
β β β β βββ analyze/ # Dataset analysis
β β β β βββ kaggle/ # Kaggle integration
β β β βββ download-model/ # Model download API
β β β βββ ml-templates/ # ML template API
β β β βββ test/ # Testing endpoints
β β β βββ test-model/ # Model testing API
β β β βββ user/ # User management
β β β β βββ profile/ # User profile API
β β β βββ webhooks/ # Webhook handlers
β β β βββ clerk/ # Clerk webhooks
β β βββ π components/ # Shared components
β β β βββ layout/ # Layout components
β β β β βββ aichat.tsx # AI chat component
β β β β βββ navbar.tsx # Navigation bar
β β β βββ providers/ # Context providers
β β β βββ theme-provider.tsx # Theme context
β β βββ π dashboard/ # Dashboard pages
β β β βββ page.tsx # Main dashboard
β β βββ π datasets/ # Dataset pages
β β β βββ page.tsx # Dataset listing
β β β βββ [...slug]/ # Dynamic dataset routes
β β β βββ page.tsx # Dataset detail page
β β βββ π magic-path/ # Magic Path feature
β β β βββ page.tsx # Magic Path interface
β β βββ π mlmodels/ # ML model pages
β β β βββ page.tsx # Model listing
β β β βββ [id]/ # Individual model pages
β β β βββ page.tsx # Model detail page
β β βββ π profile/ # User profile
β β β βββ page.tsx # Profile dashboard
β β βββ π sign-in/ # Authentication
β β β βββ page.tsx # Sign in page
β β β βββ sso-callback/ # SSO callback
β β β βββ page.tsx # SSO handler
β β βββ π sign-up/ # Registration
β β βββ page.tsx # Sign up page
β β βββ sso-callback/ # SSO callback
β β βββ page.tsx # SSO handler
β βββ π components/ # Reusable components
β β βββ automl-footer.tsx # Footer component
β β βββ Homelanding.tsx # Landing page component
β β βββ theme-toggle.tsx # Theme switcher
β β βββ ui/ # UI component library
β β βββ button.tsx # Button component
β β βββ input.tsx # Input component
β β βββ separator.tsx # Separator component
β β βββ sheet.tsx # Sheet component
β β βββ sidebar.tsx # Sidebar component
β β βββ skeleton.tsx # Skeleton loader
β β βββ tooltip.tsx # Tooltip component
β βββ π hooks/ # Custom React hooks
β β βββ use-mobile.ts # Mobile detection hook
β βββ π lib/ # Utility libraries
β β βββ kaggle.ts # Kaggle integration
β β βββ ml-models-data.ts # ML model data utilities
β β βββ mock-datasets.ts # Mock data generator
β β βββ prisma.ts # Prisma client setup
β β βββ utils.ts # General utility functions
β βββ π types/ # TypeScript definitions
β βββ dataset.ts # Dataset type definitions
βββ .env # Environment variables
βββ .env.example # Environment template
βββ .env.local # Local environment overrides
βββ .gitignore # Git ignore rules
βββ components.json # Shadcn/ui configuration
βββ eslint.config.mjs # ESLint configuration
βββ next.config.ts # Next.js configuration
βββ package.json # Dependencies & scripts
βββ postcss.config.mjs # PostCSS configuration
βββ tailwind.config.js # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ README.md # Project documentation
git clone https://github.com/deekshithgowda85/automl.git
cd automlCreate a .env file in the root folder using the template below:
# Database Configuration (PostgreSQL)
DATABASE_URL=postgresql://username:password@host:5432/database_name
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/dashboard
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/dashboard
# Google Gemini AI
GOOGLE_AI_API_KEY=your_google_ai_api_key
# E2B Sandbox (for ML model training)
E2B_API_KEY=your_e2b_api_key
# Next.js Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000- PostgreSQL Database: Use Neon or any PostgreSQL provider
- Clerk Authentication: Create account at clerk.com
- Google Gemini AI: Get API key from Google AI Studio
- E2B Sandbox: Sign up at e2b.dev for ML model training
npm install# Generate Prisma client
npm run db:generate
# Push database schema
npm run db:push
# (Optional) Seed with sample data
npx tsx scripts/seed.jsnpm run dev # Starts on http://localhost:3000π Access the application at http://localhost:3000
- Create account at neon.tech
- Create new project and database
- Copy connection string to
DATABASE_URL - Database automatically scales and manages connections
- Create project at clerk.com
- Configure sign-in/sign-up settings
- Add your domain to allowed origins
- Copy publishable and secret keys
- Frontend & Backend: Deploy to Vercel (recommended for Next.js)
- Database: Neon automatically handles production scaling
- ML Training: E2B provides scalable sandbox environments
- AI Assistant: Google Gemini scales automatically
graph TB
subgraph "Client Layer"
A[Next.js 15 Frontend]
B[React 19 Components]
C[Tailwind CSS 4]
D[TypeScript]
end
subgraph "Authentication Layer"
E[Clerk Authentication]
F[JWT Tokens]
G[User Management]
end
subgraph "API Layer"
H[Next.js API Routes]
I[Prisma ORM]
J[Google Gemini AI]
K[E2B Sandbox API]
end
subgraph "Data Layer"
L[(PostgreSQL/Neon)]
M[File Storage]
N[Model Storage]
O[Conversation History]
end
subgraph "ML Pipeline"
P[Data Processing]
Q[Model Training]
R[Performance Evaluation]
S[Model Export]
end
A -->|Authentication| E
A -->|API Calls| H
B --> C
C --> D
E --> F
F --> G
H --> I
H --> J
H --> K
I --> L
K --> P
P --> Q
Q --> R
R --> S
S --> N
style A fill:#000000,color:#fff
style E fill:#6C47FF,color:#fff
style H fill:#000000,color:#fff
style L fill:#336791,color:#fff
style K fill:#FF6B6B,color:#fff
We welcome contributions! Here's how you can help:
- π Bug Reports: Found a bug? Open an issue with reproduction steps
- π‘ Feature Requests: Have an idea for new ML capabilities?
- π§ Code Contributions: Submit pull requests for bug fixes or features
- π Documentation: Help improve our guides and API docs
- π¨ Design: UI/UX improvements for better user experience
- π€ ML Models: Add new algorithms or improve existing ones
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-ml-feature) - Make your changes
- Run tests and ensure TypeScript compliance
- Commit changes (
git commit -m 'Add amazing ML feature') - Push to branch (
git push origin feature/amazing-ml-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use ESLint configuration provided
- Write meaningful commit messages
- Add JSDoc comments for complex functions
- Follow React/Next.js conventions
- Advanced ML Algorithms: Deep learning models, neural networks
- Cloud Deployment: One-click model deployment to cloud platforms
- Real-time Predictions: API endpoints for live model inference
- Model Versioning: Track and manage different model versions
- Collaborative Features: Team workspaces and shared models
- Advanced Visualizations: Interactive model interpretation
- AutoML Pipelines: Complex multi-step ML workflows
- Integration APIs: Connect with popular ML tools and platforms
- Next.js Team: For the incredible React framework
- Clerk: For seamless authentication solutions
- Neon: For serverless PostgreSQL database
- Google: For Gemini AI API access
- E2B: For secure Python sandbox environments
- Prisma: For excellent database ORM
- Open Source Community: For amazing tools and libraries
This project is licensed under the MIT License - see the LICENSE file for details.
If you found this project helpful, please consider:
- β Starring the repository
- π΄ Forking for your own projects
- π’ Sharing with the community
- π Reporting any issues you find
We extend our gratitude to:
- π€ AI Assistant: For development guidance and code optimization
- π ML Community: For algorithms, best practices, and research papers
- π¨ Design Inspiration: Modern SaaS platforms and ML tools
- π§ Tool Providers: GitHub, Vercel, Neon, Clerk, and all open-source libraries
- π¨βπ« Educators: Online courses and tutorials that made this possible
We welcome new contributors! Here's how you can help:
- π Bug Reports: Found an issue? Open an issue
- π‘ Feature Requests: Have ML ideas? We'd love to hear them!
- π§ Code Contributions: Fork, develop, and submit a pull request
- π Documentation: Help improve our guides and API documentation
- π¨ Design: UI/UX improvements and better user experience
- π€ ML Models: Add new algorithms or optimize existing ones
- π Star the repository to show support
- π Report issues for bugs or improvements
- π¬ Discussions for questions and ML ideas
- π Fork to contribute to the project
- π§ Email: deekshiharsha2185@gmail.com

