Skip to content

AI-driven data cleaning & profiling tool. Automates CSV cleanup, analysis, rules, quality checks and AI-based recommendations

License

Notifications You must be signed in to change notification settings

royalrew/DataCleaner-Pro---AI-powered-data-cleaning-tool

Repository files navigation

DataCleaner Pro 🧹✨

AI-drivet verktyg för datastädning och -analys
Transformera rörig data till ren, användbar information med hjälp av intelligenta städregler och AI-drivna rekommendationer.

Tech Stack Status


🎯 Problemet

Datakvalitet är ett ständigt problem för företag och organisationer:

  • 80% av analytikernas tid går åt till att städa och förbereda data
  • Mänskliga fel skapar inkonsistenser: extra mellanslag, felaktiga format, dubbletter
  • Brist på standardisering gör data svår att analysera och använda
  • Manuell städning är tidskrävande och repetitiv

💡 Lösningen

DataCleaner Pro är ett intelligent verktyg som kombinerar kraftfulla städregler med AI för att:

  • Automatiskt analysera dina dataset och identifiera kvalitetsproblem
  • 🤖 AI-genererade rekommendationer föreslår relevanta städregler baserat på din data
  • 🔍 Före/efter-jämförelse visar exakt vad som ändrats
  • 📊 Detaljerad profilering ger insikt i datastrukturen
  • 💾 Export av ren, användbar data

🚀 Features

📤 Smart Filuppladdning

  • Drag-and-drop interface för CSV-filer
  • Automatisk filvalidering och metadata-extraktion
  • Support för stora dataset

📊 Dataprofilering

  • Automatisk analys av datastruktur
  • Identifierar saknade värden, datatyper och unika värden
  • Visuell sammanfattning av datakvalitet

🤖 AI-driven Analys

  • AI Health Report: Automatisk hälsobedömning av ditt dataset
  • AI-rekommenderade städregler: Intelligenta förslag baserat på dataprofilering
  • Naturligt språk-beskrivningar av problem och lösningar

🧹 Kraftfulla Städregler

  • Trim Whitespace: Ta bort extra mellanslag
  • Normalize Case: Standardisera versaler/gemener
  • Standardize Dates: Enhetliga datumformat
  • Normalize Phone Numbers: Standardisera telefonnummer
  • Fill Missing Values: Hantera saknade värden
  • Remove Duplicates: Eliminera dubbletter
  • Normalize Currency: Standardisera valutaformat

🔍 Före/Efter-jämförelse

  • Interaktiv tabell med side-by-side-jämförelse
  • Färgmarkerade ändringar
  • Smart kolumnfiltrering (döljer oförändrade och ID-kolumner)
  • Sticky headers för enkel navigering

📋 Job Management

  • Historik över alla städjobb
  • Detaljerade statistik och körtider
  • Spårbarhet av vilka regler som användes

💾 Export & Download

  • Exportera städad data som CSV
  • Behåll originalfilen intakt
  • Nedladdningsbar resultatsummering

🏗️ Arkitektur

┌─────────────────────────────────────────────────────────────┐
│                     DataCleaner Pro                          │
└─────────────────────────────────────────────────────────────┘

┌──────────────────────────┐         ┌──────────────────────────┐
│     Frontend (Next.js)   │◄────────┤    Backend (Flask)       │
│                          │  HTTP   │                          │
│  ┌────────────────────┐  │         │  ┌────────────────────┐  │
│  │ File Upload        │  │         │  │ Upload Handler     │  │
│  │ Profile Summary    │  │         │  │ Profiler Service   │  │
│  │ AI Summary Card    │  │────────►│  │ AI Services        │  │
│  │ Clean Options      │  │         │  │ Cleaner Engine     │  │
│  │ Before/After Table │  │         │  │ Job Manager        │  │
│  │ Job List           │  │         │  └────────────────────┘  │
│  └────────────────────┘  │         │                          │
│                          │         │  ┌────────────────────┐  │
│  React Components +      │         │  │ SQLite Database    │  │
│  TypeScript + CSS        │         │  │ - Files metadata   │  │
│  Modules                 │         │  │ - Job history      │  │
│                          │         │  │ - Profile results  │  │
└──────────────────────────┘         │  └────────────────────┘  │
                                     │                          │
                                     │  ┌────────────────────┐  │
                                     │  │ File Storage       │  │
                                     │  │ - Original files   │  │
                                     │  │ - Cleaned files    │  │
                                     │  └────────────────────┘  │
                                     └──────────────────────────┘

Dataflöde

Upload → Profilering → AI Analys → Välj Regler → Städning → Före/Efter → Export
   │          │            │            │            │           │          │
   ▼          ▼            ▼            ▼            ▼           ▼          ▼
 SQLite   Profiler   AI Summary   AI Suggest   Cleaner   Before/After  Download

🛠️ Tech Stack

Frontend

  • Next.js 14 - React framework med SSR/SSG
  • React 18 - UI-komponenter och state management
  • TypeScript - Typsäkerhet och bättre DX
  • CSS Modules - Scoped styling
  • Fetch API - HTTP-requests till backend

Backend

  • Python 3.9+ - Backend-språk
  • Flask - Lightweight webb-framework
  • SQLite - Enkel, filbaserad databas
  • Pandas - Datamanipulation och analys
  • Python-dateutil - Datumhantering

AI & ML

  • AI Integration - LLM-baserad analys och rekommendationer
  • Natural Language Generation - AI-genererade sammanfattningar
  • Pattern Recognition - Intelligent detektering av dataproblem

Testing & Quality

  • pytest - Enhetstester
  • Golden Tests - Verifiering mot förväntad output
  • Error Handling - Centraliserad felhantering med användargrundliga meddelanden

📸 Screenshots

Se /docs/screenshots/ för fullständiga screenshots

1. Upload & Analyze

Upload Interface Drag-and-drop interface med omedelbar feedback

2. Data Profiling

Profile Summary Detaljerad analys av datastruktur och kvalitet

3. AI Health Report

AI Summary AI-genererad hälsobedömning med rekommendationer

4. AI-Suggested Rules

Cleaning Rules Intelligenta regelförslag baserat på din data

5. Before/After Comparison

Before After Interaktiv jämförelse med färgmarkerade ändringar

6. Export & Download

Export Enkel export av städad data


🚀 Kom igång

Förutsättningar

  • Node.js 16.x eller senare
  • Python 3.9 eller senare
  • pip (Python package manager)

Installation

1. Klona projektet

git clone https://github.com/jimmy-berndtsson/datacleaner-pro.git
cd datacleaner-pro

2. Starta Backend

cd backend

# Skapa virtuell miljö (rekommenderas)
python -m venv venv
source venv/bin/activate  # På Windows: venv\Scripts\activate

# Installera beroenden
pip install -r requirements.txt

# Starta Flask-servern
python main.py

Backend körs nu på http://localhost:5000

3. Starta Frontend

Öppna en ny terminal:

cd frontend

# Installera beroenden
npm install

# Starta utvecklingsservern
npm run dev

Frontend körs nu på http://localhost:3000

4. Testa med Demo-data

Projektet innehåller 3 demo-filer i /data/:

  • kunddata_rucklig.csv - Exempel på CRM-data med vanliga problem
  • webshop_orders_messy.csv - E-handelsdata med inkonsistenser
  • crm_export_dirty.csv - Export från CRM-system med kvalitetsproblem

Ladda upp någon av dessa för att testa funktionaliteten!


📖 Användning

Grundläggande Workflow

  1. Ladda upp fil - Drag-and-drop eller klicka för att välja CSV-fil
  2. Analysera data - Klicka "📊 Analyze Data" för att få dataprofilering
  3. Generera AI-rapport - Klicka "🤖 AI Health Report" för intelligenta insikter
  4. Välj städregler - Aktivera rekommenderade eller välj egna regler
  5. Kör städning - Klicka "✨ Clean Data" för att applicera regler
  6. Granska resultat - Visa "🔍 Before/After" för att se ändringar
  7. Exportera - Klicka "💾 Download Cleaned File" för att spara resultat

Snabbknappar (Actions-panel)

  • 📤 Upload - Öppnar filuppladdning
  • 📊 Analyze - Kör dataprofilering
  • 🤖 AI Report - Genererar hälsobedömning
  • 📋 Data Profile - Hoppa till detaljerad profil
  • ⚙️ Rules - Konfigurera städregler
  • ✨ Clean - Kör städning med valda regler
  • 🔍 Compare - Visa före/efter-jämförelse
  • 💾 Download - Ladda ner städad fil

🧪 Testning

Kör Enhetstester

cd backend
pytest tests/test_cleaner_golden.py -v

Golden Tests

Projektet använder "golden tests" för att säkerställa korrekt städning:

  • Input-filer i /tests/golden/input/
  • Förväntad output i /tests/golden/expected/
  • Testerna verifierar att städresultatet matchar förväntningen exakt

Testscenarier

  • ✅ Trim whitespace
  • ✅ Normalize case
  • ✅ Remove duplicates
  • ✅ Fill missing values
  • ✅ Complex multi-rule scenarios

📊 Projektstruktur

DataCleaner Pro/
├── backend/                    # Python Flask backend
│   ├── main.py                # Entry point
│   ├── models/                # Databasmodeller
│   │   ├── file.py           # File metadata
│   │   └── job.py            # Job tracking
│   ├── routes/                # API endpoints
│   │   ├── upload.py         # File upload
│   │   ├── profile.py        # Data profiling
│   │   ├── ai_summary.py     # AI health report
│   │   ├── suggest_rules.py  # AI rule suggestions
│   │   ├── clean.py          # Cleaning execution
│   │   ├── before_after.py   # Comparison data
│   │   ├── download.py       # File export
│   │   └── jobs.py           # Job history
│   ├── services/              # Business logic
│   │   ├── profiler.py       # Data profiling engine
│   │   ├── ai_summary.py     # AI summary generation
│   │   ├── ai_suggest_rules.py # AI rule suggestions
│   │   ├── cleaner_basic.py  # Cleaning rules implementation
│   │   ├── before_after.py   # Comparison logic
│   │   └── logger.py         # Job logging
│   ├── middleware/            # Middleware
│   │   └── error_handler.py  # Centralized error handling
│   ├── uploads/               # File storage
│   ├── db.sqlite             # SQLite database
│   └── requirements.txt      # Python dependencies
│
├── frontend/                  # Next.js React frontend
│   ├── pages/                # Next.js pages
│   │   ├── index.tsx         # Main application page
│   │   └── _app.tsx          # App wrapper
│   ├── components/           # React components
│   │   ├── Layout.tsx        # Main layout (navbar + 2-column)
│   │   ├── FileUpload.tsx    # Drag-and-drop upload
│   │   ├── ProfileSummary.tsx # Data profile display
│   │   ├── AISummaryCard.tsx  # AI health report card
│   │   ├── CleanOptions.tsx   # Cleaning rules selector
│   │   ├── BeforeAfterTable.tsx # Comparison table
│   │   ├── JobList.tsx        # Job history list
│   │   └── ErrorBanner.tsx    # Error display
│   ├── lib/                  # Utilities
│   │   └── api.ts            # API client functions
│   ├── styles/               # CSS Modules
│   ├── package.json          # Node dependencies
│   └── tsconfig.json         # TypeScript config
│
├── data/                      # Demo data
│   ├── kunddata_rucklig.csv
│   ├── webshop_orders_messy.csv
│   └── crm_export_dirty.csv
│
├── tests/                     # Test suite
│   ├── golden/               # Golden test cases
│   │   ├── input/           # Test input files
│   │   └── expected/        # Expected output files
│   └── test_cleaner_golden.py # Golden test runner
│
├── docs/                      # Documentation
│   ├── VISION.md             # Product vision
│   ├── FLOW.md               # Process flow
│   ├── DEMO_SCRIPT.md        # Demo walkthrough
│   └── screenshots/          # UI screenshots
│
├── README.md                  # This file
├── ROADMAP.md                # Development roadmap
└── plan.csv                  # Project plan

🎯 Portfolio Highlights

Detta projekt demonstrerar:

🔹 Full-Stack Development

  • Modern frontend med Next.js och React
  • RESTful API med Flask
  • Database design och ORM

🔹 AI Integration

  • LLM-baserad dataanalys
  • Intelligent regelrekommendation
  • Natural language generation

🔹 Product Thinking

  • User-centric design
  • Clear value proposition
  • End-to-end user flow

🔹 Software Engineering

  • Clean architecture
  • Separation of concerns
  • Error handling & validation
  • Testing (unit + golden tests)

🔹 UI/UX Design

  • Modern, responsive interface
  • Drag-and-drop interaktivitet
  • Loading states & feedback
  • Accessibility considerations

🔹 Data Engineering

  • CSV parsing och manipulation
  • Data quality assessment
  • Transformation pipelines
  • Before/after comparison logic

🗺️ Roadmap & Status

  • Fas 1-7: Core functionality (Upload, Profiling, Cleaning, Export)
  • Fas 8: Job Management & Logging
  • Fas 9: Quality & Testing (Golden tests)
  • Fas 10: Polish & Documentation
  • 🎯 Nästa: Screenshots & Demo Script

Se ROADMAP.md för detaljerad utvecklingsplan.


🤝 Användningsfall

För Företag

  • CRM-data: Städa kontaktinformation från olika källor
  • E-handel: Standardisera produktdata och orderinformation
  • Ekonomi: Normalisera transaktionsdata och valutaformat
  • HR: Hantera personaldata med konsekvent format

För Analytiker

  • Dataprep: Snabbare förberedelse av dataset för analys
  • Kvalitetskontroll: Identifiera och åtgärda dataproblem
  • Standardisering: Enhetliga format för bättre insights

För Utvecklare

  • Data Pipeline: Integrera i ETL-processer
  • API: Bygg automatiserade städflöden
  • Testing: Använd för att generera clean testdata

📝 Licens

Detta projekt är skapat för portfolio-ändamål.


👤 Kontakt

Jimmy Berndtsson


🙏 Acknowledgments

  • Inspirerat av verkliga datakvalitetsproblem i produktionsmiljöer
  • Byggt som en del av en portfolio för att demonstrera full-stack och AI-kompetens
  • Tack till alla som testat och gett feedback under utvecklingen

⭐ Om du gillar detta projekt, ge det en stjärna!

Byggt med ❤️ för att visa produktteam-mindset och tekniska färdigheter

About

AI-driven data cleaning & profiling tool. Automates CSV cleanup, analysis, rules, quality checks and AI-based recommendations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published