Professional Business Intelligence (BI) analytics dashboard built with Next.js (App Router v16). This application performs unsupervised machine learning (K-Means Clustering) on real freelancer market data, using a 100% Node.js/TypeScript environment (no external Python microservices required).
- Framework: Next.js (App Router v16)
- Language: TypeScript
- ML Engine:
ml-kmeans(Server-side clustering) - Visualization:
recharts(ScatterChart, LineChart, RadarChart) - Styling: Tailwind CSS v4 (Dark mode, neon glow, glassmorphism)
- Icons:
lucide-react
- Cluster Explorer (
/explorer): Multi-dimensional data exploration with:- Scatter Matrix: Visualize correlations (e.g., Hourly Rate vs. Earnings).
- Elbow Plot: Mathematical diagnostics (SSE) to determine the optimal k.
- Radar Chart: Advanced profiling of clusters (Earnings, Rate, Rating, Marketing, Success %).
- Insight Presets: Predefined scenarios (ROI, Price Elasticity, Reputation).
- What-If Simulator (
/what-if): Predictive tool to simulate profile shifts by adjusting parameters like rates or marketing spend. - Methodology: Step-by-step breakdown of the data pipeline and research process.
- Input: Kaggle
Freelancer EarningsCSV dataset. - Preprocessing:
scripts/prepare-data.jsscript cleans and maps CSV to JSON. - Scaling: Server-side Min-Max Scaling (normalization to [0,1]) for balanced clustering.
- Core: Dynamic clustering via
runKmeans()in Next.js Route Handlers.
npm install
node scripts/prepare-data.js
npm run devProfesjonalny panel analityczny Business Intelligence (BI) zbudowany w ekosystemie Next.js (App Router v16). Aplikacja służy do nienadzorowanego uczenia maszynowego (K-Means Clustering) na rzeczywistych danych rynkowych dotyczących pracy freelancerów, bez konieczności integracji z zewnętrznymi mikroserwisami Pythona (np. FastAPI/Flask), co unifikuje architekturę całego systemu.
- Framework: Next.js (App Router v16)
- Język: TypeScript
- Klasyfikacja (ML):
ml-kmeans(silnik klastrowania po stronie serwera) - Wizualizacja:
recharts(ScatterChart, LineChart, RadarChart) - Stylizacja: Tailwind CSS v4 (Dark mode, neon glow, szklany minimalizm)
- Icons:
lucide-react
-
Cluster Explorer (
/explorer): Wielowymiarowe bindowanie danych:- Główny Wykres Matrix: Mapowanie punktów na siatce 2D.
-
Metoda Łokcia (Elbow Plot): Diagnostyka SSE pokazująca optymalną liczbę klastrów (
$k$ ). - Wykres Radarowy (Spider Chart): Profilowanie średnich parametrów klastra.
- Scenariusze Badawcze (Preset BI): Szybkie wglądy (np. Zwrot z Reklamy ROI).
-
What-If Simulator (
/what-if): Narzędzie prognostyczne do symulacji przesunięć profili (Euclidean distance). - Metodologia: Opis potoku danych i procesu badawczego krok po kroku.
-
Dane Wejściowe: Zbiór Kaggle
data/freelancer_earnings_bd.csv. -
Preprocessing: Skrypt
scripts/prepare-data.jsparsuje CSV i mapuje zmienne na format JSON. -
Skalowanie: Min-Max Scaling (normalizacja do
$[0,1]$ ) w API/api/train. -
Silnik Core: Klasyfikacja klastrów przez
runKmeans()w route handlerze.
npm install
node scripts/prepare-data.js
npm run dev