Skip to content

Commit 17f1343

Browse files
Update index.html
1 parent 46470fb commit 17f1343

File tree

1 file changed

+102
-66
lines changed

1 file changed

+102
-66
lines changed

backend/static/index.html

Lines changed: 102 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,105 @@
1-
<script>
2-
document.getElementById('uploadForm').addEventListener('submit', async function (e) {
3-
e.preventDefault();
4-
const formData = new FormData();
5-
formData.append('file', document.getElementById('fileInput').files[0]);
6-
7-
try {
8-
const response = await fetch('/upload', {
9-
method: 'POST',
10-
body: formData
11-
});
12-
13-
if (!response.ok) {
14-
const errorText = await response.text();
15-
console.error("Upload error:", errorText);
16-
alert("Upload failed: " + response.status);
17-
return;
18-
}
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6+
<title>AI Data Science Backend</title>
7+
</head>
8+
<body>
9+
<h1>📈 AI Data Science App</h1>
10+
11+
<form id="uploadForm">
12+
<label for="fileInput">Upload CSV File:</label>
13+
<input type="file" id="fileInput" name="file" required />
14+
<button type="submit">Upload</button>
15+
</form>
16+
17+
<form id="predictForm">
18+
<label for="futureInput">Enter future dates (YYYY-MM-DD, comma-separated):</label>
19+
<input type="text" id="futureInput" name="future_x" />
20+
<button type="submit">Predict</button>
21+
</form>
22+
23+
<h3>🧠 Summary:</h3>
24+
<pre id="summary"></pre>
25+
26+
<h3>🔍 Logs:</h3>
27+
<pre id="log"></pre>
28+
29+
<h3>🔮 Forecast:</h3>
30+
<pre id="forecast"></pre>
31+
32+
<h3>📊 Plot:</h3>
33+
<img id="plot" style="display:none; max-width:600px;" />
34+
35+
<script>
36+
// Paste your full JavaScript code here (what you already sent)
37+
// No change needed
38+
document.getElementById('uploadForm').addEventListener('submit', async function (e) {
39+
e.preventDefault();
40+
const formData = new FormData();
41+
formData.append('file', document.getElementById('fileInput').files[0]);
42+
43+
try {
44+
const response = await fetch('/upload', {
45+
method: 'POST',
46+
body: formData
47+
});
1948

20-
const data = await response.json();
21-
22-
document.getElementById('summary').textContent = data.summary;
23-
document.getElementById('log').textContent = data.log;
24-
document.getElementById('forecast').textContent = data.forecast;
25-
document.getElementById('plot').src = data.plot_url;
26-
document.getElementById('plot').style.display = 'block';
27-
28-
} catch (err) {
29-
console.error("Unexpected upload error:", err);
30-
alert("Upload failed: " + err.message);
31-
}
32-
});
33-
34-
document.getElementById('predictForm').addEventListener('submit', async function (e) {
35-
e.preventDefault();
36-
const futureX = document.getElementById('futureInput').value;
37-
38-
const formData = new FormData();
39-
formData.append('future_x', futureX);
40-
41-
try {
42-
const response = await fetch('/predict', {
43-
method: 'POST',
44-
body: formData
45-
});
46-
47-
if (!response.ok) {
48-
const errorText = await response.text();
49-
console.error("Predict error:", errorText);
50-
alert("Prediction failed: " + response.status);
51-
return;
49+
if (!response.ok) {
50+
const errorText = await response.text();
51+
console.error("Upload error:", errorText);
52+
alert("Upload failed: " + response.status);
53+
return;
54+
}
55+
56+
const data = await response.json();
57+
document.getElementById('summary').textContent = data.summary;
58+
document.getElementById('log').textContent = data.log;
59+
document.getElementById('forecast').textContent = data.forecast;
60+
document.getElementById('plot').src = data.plot_url;
61+
document.getElementById('plot').style.display = 'block';
62+
63+
} catch (err) {
64+
console.error("Unexpected upload error:", err);
65+
alert("Upload failed: " + err.message);
5266
}
67+
});
68+
69+
document.getElementById('predictForm').addEventListener('submit', async function (e) {
70+
e.preventDefault();
71+
const futureX = document.getElementById('futureInput').value;
72+
73+
const formData = new FormData();
74+
formData.append('future_x', futureX);
5375

54-
const data = await response.json();
55-
56-
document.getElementById('forecast').textContent =
57-
typeof data.forecast === "string"
58-
? data.forecast
59-
: JSON.stringify(data.forecast, null, 2);
60-
document.getElementById('log').textContent = data.log;
61-
document.getElementById('plot').src = data.plot_url;
62-
document.getElementById('plot').style.display = 'block';
63-
64-
} catch (err) {
65-
console.error("Unexpected prediction error:", err);
66-
alert("Prediction failed: " + err.message);
67-
}
68-
});
69-
</script>
76+
try {
77+
const response = await fetch('/predict', {
78+
method: 'POST',
79+
body: formData
80+
});
81+
82+
if (!response.ok) {
83+
const errorText = await response.text();
84+
console.error("Predict error:", errorText);
85+
alert("Prediction failed: " + response.status);
86+
return;
87+
}
88+
89+
const data = await response.json();
90+
document.getElementById('forecast').textContent =
91+
typeof data.forecast === "string"
92+
? data.forecast
93+
: JSON.stringify(data.forecast, null, 2);
94+
document.getElementById('log').textContent = data.log;
95+
document.getElementById('plot').src = data.plot_url;
96+
document.getElementById('plot').style.display = 'block';
97+
98+
} catch (err) {
99+
console.error("Unexpected prediction error:", err);
100+
alert("Prediction failed: " + err.message);
101+
}
102+
});
103+
</script>
104+
</body>
105+
</html>

0 commit comments

Comments
 (0)