Zsolt Szalai

Data Lab

Mi hajt előre?

Minden nap valami újat alkotok. Szeretek olyan digitális megoldásokat építeni, amelyek segítik az embereket és a vállalkozásokat a növekedésben és a virágzásban. Úgy hiszem, hogy „a legjobb projekt, amin valaha dolgozhatsz, te magad vagy”, ami folyamatosan arra ösztönöz, hogy tanuljak és új módszereket fedezzek fel a kihívások megoldására.

Minden nap valami újat alkotok. Szeretek olyan digitális megoldásokat építeni, amelyek segítik az embereket és a vállalkozásokat a növekedésben és a virágzásban. Úgy hiszem, hogy „a legjobb projekt, amin valaha dolgozhatsz, te magad vagy”, ami folyamatosan arra ösztönöz, hogy tanuljak és új módszereket fedezzek fel a kihívások megoldására.

Mi hajt előre?

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'); }); });