Glitchyi/Data-Lens

โ˜… 1Forks 0HTMLGitHub โ†—Compare

README

Data Lens

Team Members:

Project Overview

This project is a comprehensive data processing solution that combines file conversion, AI-powered analysis, and cloud storage capabilities. The system converts CSV/JSON files to efficient Parquet format and generates intelligent metadata using Groq LLM.

Architecture

๐Ÿ“ Project Structure

โ”œโ”€โ”€ data/                          # Sample data files
โ”‚   โ”œโ”€โ”€ AirlineSatisfactionSurvey1.csv
โ”‚   โ””โ”€โ”€ dummy_marksheet.csv
โ”œโ”€โ”€ server/                        # Main application server
โ”‚   โ”œโ”€โ”€ server.py                  # Flask web application
โ”‚   โ”œโ”€โ”€ requirements.txt           # Python dependencies
โ”‚   โ”œโ”€โ”€ setup.sh                   # Automated setup script
โ”‚   โ”œโ”€โ”€ start.sh                   # Server start script
โ”‚   โ”œโ”€โ”€ test_integration.py        # Integration tests
โ”‚   โ”œโ”€โ”€ .env.example              # Environment configuration template
โ”‚   โ”œโ”€โ”€ templates/
โ”‚   โ”‚   โ””โ”€โ”€ index.html            # Web interface
โ”‚   โ””โ”€โ”€ utils/                     # Data processing modules
โ”‚       โ”œโ”€โ”€ __init__.py           # Package initialization
โ”‚       โ”œโ”€โ”€ enrich.py             # Data analysis engine
โ”‚       โ””โ”€โ”€ summarizer.py         # AI summarization module
โ””โ”€โ”€ README.md                      # This file

๐Ÿ”ง Core Components

Data Processing Engine (utils/)

  • enrich.py: Advanced data analysis and column profiling

    • Automatic data type detection
    • Statistical analysis for numerical columns
    • Semantic type inference
    • Sample data extraction
  • summarizer.py: AI-powered metadata generation

    • Groq LLM integration for intelligent descriptions
    • Parquet file processing from MinIO storage
    • README generation in markdown format
    • Metadata file management

Web Application (server.py)

  • File Upload & Conversion: Drag & drop interface for CSV/JSON to Parquet conversion
  • MinIO Integration: Secure cloud storage for processed files
  • AI Analysis: On-demand metadata generation for parquet files
  • File Management: Browse, download, and analyze stored files

Features

๐Ÿš€ Data Conversion

  • Convert CSV and JSON files to efficient Parquet format
  • Automatic file upload and processing
  • Real-time progress feedback
  • Secure cloud storage with MinIO

๐Ÿค– AI-Powered Analysis

  • Generate comprehensive dataset descriptions using Groq LLM
  • Automatic field analysis and semantic type detection
  • Create detailed README files with statistics and samples
  • Export metadata in markdown format

๐Ÿ“Š Data Management

  • Browse all stored files with rich metadata
  • Download original and processed files
  • View generated analysis reports
  • Integrated file management interface

Quick Start

1. Setup

cd server/
./setup.sh

2. Configuration

Edit .env file with your settings:

MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=your_access_key
MINIO_SECRET_KEY=your_secret_key
GROQ_API_KEY=your_groq_api_key

3. Run

./start.sh

4. Access

Open http://localhost:5000 in your browser

Usage Workflow

  1. Upload Data: Drag & drop CSV/JSON files for automatic Parquet conversion
  2. Analyze Files: Select Parquet files for AI-powered metadata generation
  3. View Results: Browse comprehensive analysis reports and download files

Technical Stack

  • Backend: Flask, Python 3.8+
  • Data Processing: pandas, pyarrow
  • AI/ML: Groq LLM API
  • Storage: MinIO object storage
  • Frontend: HTML5, Tailwind CSS, JavaScript
  • File Formats: CSV, JSON input โ†’ Parquet output

API Endpoints

  • POST /convert-to-parquet - File conversion
  • POST /process-parquet/<filename> - AI analysis
  • GET /list-files - File management
  • GET /get-metadata/<filename> - Metadata retrieval
  • GET /download/<filename> - File download

Development

Testing

python test_integration.py

Debug Mode

export FLASK_DEBUG=1
python server.py

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Implement your changes
  4. Test thoroughly
  5. Submit a pull request

Advaithum Pillerum - Advanced Data Processing Solutions

Contributors

Glitchyi

Issues