Skip to content

deekshithgowda85/Automl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

29 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ€– AutoML Platform - Intelligent Machine Learning Model Builder

AutoML Banner

Democratizing Machine Learning through Automated Model Development and Deployment

GitHub stars GitHub forks GitHub issues GitHub license GitHub last commit

Next.js TypeScript PostgreSQL Prisma Python



πŸš€ Vision & Mission

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.


πŸ› οΈ Features

  • 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

πŸ§‘β€πŸ’» Tech Stack

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

πŸ—οΈ System Architecture

Complete Application Flow

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
Loading

Database Schema (PostgreSQL)

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
Loading

ML Pipeline Integration

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
Loading

πŸ“¦ Project Structure

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

⚑ Quick Start

1. Clone the Repository

git clone https://github.com/deekshithgowda85/automl.git
cd automl

2. Setup Environment Variables

Create 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

πŸ” Environment Setup Guide:

  1. PostgreSQL Database: Use Neon or any PostgreSQL provider
  2. Clerk Authentication: Create account at clerk.com
  3. Google Gemini AI: Get API key from Google AI Studio
  4. E2B Sandbox: Sign up at e2b.dev for ML model training

3. Install Dependencies

npm install

4. Initialize Database

# Generate Prisma client
npm run db:generate

# Push database schema
npm run db:push

# (Optional) Seed with sample data
npx tsx scripts/seed.js

5. Start Development Server

npm run dev        # Starts on http://localhost:3000

πŸŽ‰ Access the application at http://localhost:3000


πŸ”§ Advanced Configuration

PostgreSQL Setup (Neon)

  1. Create account at neon.tech
  2. Create new project and database
  3. Copy connection string to DATABASE_URL
  4. Database automatically scales and manages connections

Clerk Authentication Setup

  1. Create project at clerk.com
  2. Configure sign-in/sign-up settings
  3. Add your domain to allowed origins
  4. Copy publishable and secret keys

Production Deployment

  • 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

πŸ—‚οΈ Architecture Diagrams

High-Level System Overview

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
Loading

🀝 Contributing

We welcome contributions! Here's how you can help:

Ways to Contribute

  • πŸ› 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

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-ml-feature)
  3. Make your changes
  4. Run tests and ensure TypeScript compliance
  5. Commit changes (git commit -m 'Add amazing ML feature')
  6. Push to branch (git push origin feature/amazing-ml-feature)
  7. Open a Pull Request

Code Style

  • Follow TypeScript best practices
  • Use ESLint configuration provided
  • Write meaningful commit messages
  • Add JSDoc comments for complex functions
  • Follow React/Next.js conventions

πŸ“Š Project Stats

GitHub Contributors GitHub Commit Activity GitHub Repo Size


πŸ›£οΈ Roadmap

  • 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

πŸ† Acknowledgments

  • 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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


🌟 Show Your Support

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

πŸ‘₯ Contributors & Credits

🀝 Project Contributors

Avatar Contributor GitHub Profile
Deekshith Gowda GitHub

🌟 Special Thanks

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

🎯 Want to Contribute?

We welcome new contributors! Here's how you can help:

  1. πŸ› Bug Reports: Found an issue? Open an issue
  2. πŸ’‘ Feature Requests: Have ML ideas? We'd love to hear them!
  3. πŸ”§ Code Contributions: Fork, develop, and submit a pull request
  4. πŸ“– Documentation: Help improve our guides and API documentation
  5. 🎨 Design: UI/UX improvements and better user experience
  6. πŸ€– ML Models: Add new algorithms or optimize existing ones

πŸ“Š Contribution Stats

Contributors Commits Last Commit


πŸ’‘ Contact & Support

πŸ“§ For questions or support, please open an issue:

Issues

Connect with the Team:

  • 🌟 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

About

AutoML Platform - Intelligent Machine Learning Model Builder

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •