Skip to content
/ EDA Public

Get Your Insights is a powerful web-based platform that automates Exploratory Data Analysis (EDA) for your datasets.

Notifications You must be signed in to change notification settings

UmanSheikh/EDA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Get Your Insights - EDA Analysis Platform

Python Django Status Maintenance

Transform raw data into actionable insights with just a few clicks!

FeaturesDemoInstallationUsageTech Stack


🎯 About

Get Your Insights is a powerful web-based platform that automates Exploratory Data Analysis (EDA) for your datasets. Upload your CSV or Excel files and receive comprehensive, professional data profiling reports in seconds. Built with Django and powered by ydata-profiling, our platform helps data scientists, analysts, and business professionals make data-driven decisions effortlessly.

🌟 Why Choose Get Your Insights?

  • 🚀 Instant Analysis: Get comprehensive EDA reports in just a few clicks
  • 📈 Professional Reports: Detailed statistical analysis and visualizations
  • 💼 Multiple Pricing Plans: Flexible options for individuals and teams
  • 🔒 Secure & Private: Your data is processed securely with user authentication
  • 📱 User-Friendly Interface: Clean, intuitive dashboard for easy navigation
  • 💳 Integrated Payments: Seamless Stripe integration for subscriptions

✨ Features

Core Functionality

  • 📁 File Upload Support: CSV and Excel (.xls, .xlsx) files
  • 📊 Comprehensive EDA Reports:
    • Descriptive statistics
    • Missing value analysis
    • Correlation matrices
    • Distribution plots
    • Data type inference
    • And much more!
  • 🔄 Report History: Access all your previously generated reports
  • 👤 User Dashboard: Personalized workspace for managing your analyses

User Management

  • User Registration & Authentication
  • Email Verification with OTP
  • Password Reset Functionality
  • User Profile Management
  • Secure Session Management

Payment & Subscriptions

  • 💳 Stripe Payment Integration
  • 💰 Multiple Pricing Tiers:
    • Basic: $5/month
    • Premium: $10/month
    • One-time: $100 (lifetime access)
  • 📜 Payment History Tracking

Additional Features

  • 📧 Email Notifications
  • 🔐 Secure File Storage
  • 📱 Responsive Design
  • 📋 Terms of Service & Privacy Policy
  • 🆘 Support System

🎬 Demo

Landing Page

The beautiful landing page showcases the platform's capabilities and guides users to get started.

Dashboard

Upload your data files and access your analysis reports from a clean, intuitive dashboard.

Generated Reports

Receive comprehensive HTML reports with interactive visualizations and detailed statistical analysis powered by ydata-profiling.


🚀 Installation

Prerequisites

  • Python 3.9 or higher
  • pip (Python package manager)
  • Virtual environment (recommended)

Step-by-Step Setup

  1. Clone the repository

    git clone https://github.com/UmanSheikh/EDA.git
    cd EDA
  2. Create and activate virtual environment

    # On Windows
    python -m venv venv
    venv\Scripts\activate
    
    # On macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Set up environment variables

    Create a .env file in the root directory (or set these in your environment):

    # Email Configuration
    EMAIL_HOST_USER=your_email@example.com
    EMAIL_HOST_PASSWORD=your_app_specific_password  # NEVER use your regular email password!
    
    # Stripe Configuration
    STRIPE_SECRET_KEY=your_stripe_secret_key
    STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
    
    # Django Secret Key (for production)
    SECRET_KEY=your_secret_key_here

    ⚠️ Security Note:

    • Never commit the .env file to version control
    • For EMAIL_HOST_PASSWORD, use app-specific passwords (Gmail) or OAuth tokens - NEVER your regular email password
    • Generate a strong SECRET_KEY for production using python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
  5. Run database migrations

    python manage.py migrate
  6. Create a superuser (admin account)

    python manage.py createsuperuser
  7. Collect static files

    python manage.py collectstatic --noinput
  8. Run the development server

    python manage.py runserver
  9. Access the application

    Open your browser and navigate to: http://127.0.0.1:8000/


📖 Usage

For End Users

  1. Sign Up: Create an account on the platform
  2. Verify Email: Check your email for the OTP verification code
  3. Choose Plan: Select a pricing plan that fits your needs
  4. Upload Data: Navigate to the dashboard and upload your CSV or Excel file
  5. Get Insights: Receive your comprehensive EDA report instantly
  6. Access History: View all your previous reports from your profile

For Developers

Project Structure

EDA/
├── frontend/              # Main Django app
│   ├── migrations/       # Database migrations
│   ├── models.py         # Database models (Users, Payment, UserHistory)
│   ├── views.py          # View functions and business logic
│   ├── urls.py           # URL routing
│   ├── utils.py          # Utility functions (report generation)
│   ├── templates/        # HTML templates
│   └── static/           # Static files (CSS, JS, images)
├── getyourinsights/      # Project settings
│   ├── settings.py       # Django settings
│   ├── urls.py           # Root URL configuration
│   └── wsgi.py           # WSGI configuration
├── static/               # Static files directory
├── media/                # User uploads and generated reports
├── manage.py             # Django management script
└── requirements.txt      # Python dependencies

Key Models

Users_GYI (Custom User Model)

  • Extends Django's AbstractUser
  • Includes pricing type, verification status, and payment fields

UserHistory

  • Tracks uploaded files and generated reports
  • Links to user accounts

Payment

  • Stores Stripe payment information
  • Tracks payment status and dates

Generating Reports

The report generation is handled by the generate_profile_report() function in frontend/utils.py:

from frontend.utils import generate_profile_report

# Generate a report
report_path = generate_profile_report('path/to/your/data.csv')

🛠️ Tech Stack

Backend

  • Django 5.1.1 - Web framework
  • Python 3.9+ - Programming language
  • SQLite - Database (development)

Data Analysis

  • Pandas 2.2.3 - Data manipulation
  • NumPy 2.0.2 - Numerical computing
  • ydata-profiling 4.10.0 - Automated EDA report generation
  • Matplotlib 3.9.2 - Data visualization
  • Seaborn 0.13.2 - Statistical data visualization
  • SciPy 1.13.1 - Scientific computing
  • Statsmodels 0.14.3 - Statistical models

Payment Processing

  • Stripe 11.1.0 - Payment gateway integration

Frontend

  • Bootstrap - CSS framework
  • jQuery - JavaScript library
  • Custom CSS/JS - For additional styling and functionality

Additional Libraries

  • Pillow 10.4.0 - Image processing
  • WordCloud 1.9.3 - Text visualization
  • ImageHash 4.3.1 - Image hashing

⚙️ Configuration

Email Settings

Configure your email backend in settings.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'  # or your email provider
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')

Stripe Integration

Add your Stripe keys:

STRIPE_SECRET_KEY = os.environ.get('STRIPE_SECRET_KEY')
STRIPE_PUBLISHABLE_KEY = os.environ.get('STRIPE_PUBLISHABLE_KEY')

Static Files

For production deployment:

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'frontend/static'),
]

Security Settings

⚠️ Important for Production:

  1. Set DEBUG = False in production
  2. Update ALLOWED_HOSTS with your domain
  3. Use a strong, unique SECRET_KEY
  4. Use environment variables for sensitive data
  5. Configure HTTPS/SSL
  6. Set up proper CORS headers if needed

🤝 Contributing

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

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/AmazingFeature
  3. Commit your changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the branch
    git push origin feature/AmazingFeature
  5. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guidelines for Python code
  • Write clear, descriptive commit messages
  • Add comments for complex logic
  • Update documentation as needed
  • Test your changes thoroughly

📝 License

This project is open source and available for use. Please contact the repository owner for licensing details.


📧 Contact & Support


🙏 Acknowledgments

  • ydata-profiling - For providing the excellent EDA report generation library
  • Django Community - For the robust web framework
  • Bootstrap - For the responsive UI components
  • All contributors and users who help improve this platform

🔄 Changelog

Version 1.0.0 (Current)

  • ✅ Initial release
  • ✅ User authentication and verification
  • ✅ File upload and EDA report generation
  • ✅ Stripe payment integration
  • ✅ User dashboard and history
  • ✅ Email notifications
  • ✅ Responsive design

🎯 Roadmap

Future enhancements we're planning:

  • Support for more file formats (JSON, Parquet, SQL)
  • Advanced customization options for reports
  • API access for programmatic usage
  • Team collaboration features
  • Export reports in multiple formats (PDF, Word)
  • Scheduled report generation
  • Integration with cloud storage (AWS S3, Google Drive)
  • Real-time data analysis for streaming data
  • Mobile app development

⭐ Star this repository if you find it helpful!

Made with ❤️ by Uman Sheikh

About

Get Your Insights is a powerful web-based platform that automates Exploratory Data Analysis (EDA) for your datasets.

Topics

Resources

Stars

Watchers

Forks