Zsolt Szalai

Data Lab

Was treibt mich an?

Jeden Tag etwas Neues schaffen. Ich liebe es, digitale Lösungen zu entwickeln, die Menschen und Unternehmen helfen, zu wachsen und zu gedeihen. Ich glaube, „das beste Projekt, an dem Sie jemals arbeiten werden, sind Sie selbst“, was mich dazu bringt, ständig zu lernen und neue Wege zur Lösung von Herausforderungen zu entdecken.

Jeden Tag etwas Neues schaffen. Ich liebe es, digitale Lösungen zu entwickeln, die Menschen und Unternehmen helfen, zu wachsen und zu gedeihen. Ich glaube, „das beste Projekt, an dem Sie jemals arbeiten werden, sind Sie selbst“, was mich dazu bringt, ständig zu lernen und neue Wege zur Lösung von Herausforderungen zu entdecken.

Was treibt mich an?

Interactive Data Lab
Notebook
Data View
Visualizations
SQL Query

Drop your CSV/Excel file here or click to browse

Supports: CSV, Excel, JSON, Parquet

Python
SQL

Interactive Visualization

Date Sales Customers Revenue

${(file.size / 1024).toFixed(2)} KB • Click to change file

`; // Add AI message addAIMessage(`Great! I've loaded "${file.name}". I can see it contains data with ${Math.floor(Math.random() * 1000) + 100} rows. What would you like to analyze?`); } } // Run Code Function function runCode(button) { const codeCell = button.closest('.code-cell'); const output = codeCell.querySelector('.output'); const codeInput = codeCell.querySelector('.code-input'); output.style.display = 'block'; output.innerHTML = '
'; setTimeout(() => { // Simulate code execution const cellType = codeCell.querySelector('.cell-type').textContent; if (cellType === 'Python') { output.innerHTML = `
   date       sales  customers
0  2024-01-01  100.52      125
1  2024-01-02  98.73       134
2  2024-01-03  102.41      118
3  2024-01-04  105.22      142
4  2024-01-05  103.89      137

✓ Code executed successfully
`; } else if (cellType === 'SQL') { output.innerHTML = `
month       | total_sales | avg_customers
------------|-------------|---------------
2024-06-01  | 3,542.50    | 165.3
2024-05-01  | 3,128.75    | 152.7
2024-04-01  | 2,895.20    | 148.2

✓ Query executed: 3 rows returned
`; } }, 1000); } // Chat Functions function sendMessage() { const input = document.getElementById('chatInput'); const message = input.value.trim(); if (message) { addUserMessage(message); input.value = ''; // Simulate AI response setTimeout(() => { const responses = [ "I've analyzed your data and found an upward trend in sales with a 15% month-over-month growth. The correlation between customer count and sales is 0.87, which is quite strong.", "Here's a quick insight: Your best performing day is Tuesday with average sales 23% higher than other weekdays. Would you like me to create a visualization for this?", "I can create a predictive model for your sales. Based on the current trend, next month's projected sales are $18,450 ± $1,200.", "The data shows seasonal patterns. Q2 typically shows 30% higher performance. I can help you prepare for this trend." ]; const response = responses[Math.floor(Math.random() * responses.length)]; addAIMessage(response); }, 1000); } } function addUserMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'message user'; messageDiv.textContent = message; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } function addAIMessage(message) { const chatMessages = document.getElementById('chatMessages'); const messageDiv = document.createElement('div'); messageDiv.className = 'message ai'; messageDiv.innerHTML = message; chatMessages.appendChild(messageDiv); chatMessages.scrollTop = chatMessages.scrollHeight; } // Enter key support for chat document.getElementById('chatInput').addEventListener('keypress', (e) => { if (e.key === 'Enter') { sendMessage(); } }); // Tab switching document.querySelectorAll('.tab').forEach(tab => { tab.addEventListener('click', function() { document.querySelectorAll('.tab').forEach(t => t.classList.remove('active')); this.classList.add('active'); }); }); // Sidebar item switching document.querySelectorAll('.sidebar-item').forEach(item => { item.addEventListener('click', function() { document.querySelectorAll('.sidebar-item').forEach(i => i.classList.remove('active')); this.classList.add('active'); }); });