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.
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
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
- Drag-and-drop interface för CSV-filer
- Automatisk filvalidering och metadata-extraktion
- Support för stora dataset
- Automatisk analys av datastruktur
- Identifierar saknade värden, datatyper och unika värden
- Visuell sammanfattning av datakvalitet
- 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
- 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
- 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
- Historik över alla städjobb
- Detaljerade statistik och körtider
- Spårbarhet av vilka regler som användes
- Exportera städad data som CSV
- Behåll originalfilen intakt
- Nedladdningsbar resultatsummering
┌─────────────────────────────────────────────────────────────┐
│ 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 │ │
│ └────────────────────┘ │
└──────────────────────────┘
Upload → Profilering → AI Analys → Välj Regler → Städning → Före/Efter → Export
│ │ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼ ▼
SQLite Profiler AI Summary AI Suggest Cleaner Before/After Download
- 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
- Python 3.9+ - Backend-språk
- Flask - Lightweight webb-framework
- SQLite - Enkel, filbaserad databas
- Pandas - Datamanipulation och analys
- Python-dateutil - Datumhantering
- AI Integration - LLM-baserad analys och rekommendationer
- Natural Language Generation - AI-genererade sammanfattningar
- Pattern Recognition - Intelligent detektering av dataproblem
- pytest - Enhetstester
- Golden Tests - Verifiering mot förväntad output
- Error Handling - Centraliserad felhantering med användargrundliga meddelanden
Se
/docs/screenshots/för fullständiga screenshots
Drag-and-drop interface med omedelbar feedback
Detaljerad analys av datastruktur och kvalitet
AI-genererad hälsobedömning med rekommendationer
Intelligenta regelförslag baserat på din data
Interaktiv jämförelse med färgmarkerade ändringar
- Node.js 16.x eller senare
- Python 3.9 eller senare
- pip (Python package manager)
git clone https://github.com/jimmy-berndtsson/datacleaner-pro.git
cd datacleaner-procd 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.pyBackend körs nu på http://localhost:5000
Öppna en ny terminal:
cd frontend
# Installera beroenden
npm install
# Starta utvecklingsservern
npm run devFrontend körs nu på http://localhost:3000
Projektet innehåller 3 demo-filer i /data/:
kunddata_rucklig.csv- Exempel på CRM-data med vanliga problemwebshop_orders_messy.csv- E-handelsdata med inkonsistensercrm_export_dirty.csv- Export från CRM-system med kvalitetsproblem
Ladda upp någon av dessa för att testa funktionaliteten!
- Ladda upp fil - Drag-and-drop eller klicka för att välja CSV-fil
- Analysera data - Klicka "📊 Analyze Data" för att få dataprofilering
- Generera AI-rapport - Klicka "🤖 AI Health Report" för intelligenta insikter
- Välj städregler - Aktivera rekommenderade eller välj egna regler
- Kör städning - Klicka "✨ Clean Data" för att applicera regler
- Granska resultat - Visa "🔍 Before/After" för att se ändringar
- Exportera - Klicka "💾 Download Cleaned File" för att spara resultat
- 📤 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
cd backend
pytest tests/test_cleaner_golden.py -vProjektet 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
- ✅ Trim whitespace
- ✅ Normalize case
- ✅ Remove duplicates
- ✅ Fill missing values
- ✅ Complex multi-rule scenarios
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
Detta projekt demonstrerar:
- Modern frontend med Next.js och React
- RESTful API med Flask
- Database design och ORM
- LLM-baserad dataanalys
- Intelligent regelrekommendation
- Natural language generation
- User-centric design
- Clear value proposition
- End-to-end user flow
- Clean architecture
- Separation of concerns
- Error handling & validation
- Testing (unit + golden tests)
- Modern, responsive interface
- Drag-and-drop interaktivitet
- Loading states & feedback
- Accessibility considerations
- CSV parsing och manipulation
- Data quality assessment
- Transformation pipelines
- Before/after comparison logic
- ✅ 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.
- 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
- Dataprep: Snabbare förberedelse av dataset för analys
- Kvalitetskontroll: Identifiera och åtgärda dataproblem
- Standardisering: Enhetliga format för bättre insights
- Data Pipeline: Integrera i ETL-processer
- API: Bygg automatiserade städflöden
- Testing: Använd för att generera clean testdata
Detta projekt är skapat för portfolio-ändamål.
Jimmy Berndtsson
- LinkedIn: linkedin.com/in/jimmy-berndtsson-7b86a4287
- Email: jimmy@sintari.se
- GitHub: github.com/jimmy-berndtsson/datacleaner-pro
- 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
