Skip to content

Commit 36bf2ac

Browse files
Update index.html
1 parent aa57184 commit 36bf2ac

File tree

1 file changed

+66
-100
lines changed

1 file changed

+66
-100
lines changed

backend/static/index.html

Lines changed: 66 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,69 @@
1-
<!DOCTYPE html>
2-
<html>
3-
<head>
4-
<title>AI Data Science Lab</title>
5-
</head>
6-
<body>
7-
<h2>Upload Your Data</h2>
8-
<form id="uploadForm">
9-
<input type="file" id="fileInput" name="file" accept=".csv" required>
10-
<input type="submit" value="Upload and Analyze">
11-
</form>
12-
13-
<h3>OpenAI Summary</h3>
14-
<div id="summary"></div>
15-
16-
<h3>Scatter Plot</h3>
17-
<img id="plot" style="display:none;" alt="Scatter Plot" />
18-
19-
<h3>Backend Log</h3>
20-
<pre id="log"></pre>
21-
22-
<h3>Forecasted Values</h3>
23-
<pre id="forecast"></pre>
24-
25-
<form id="predictForm">
26-
<label>Enter future X values (comma-separated, e.g., 2025-06-01, 2025-06-15):</label><br>
27-
<input type="text" id="futureInput" placeholder="e.g., 2025-06-01, 2025-06-15">
28-
<input type="submit" value="Forecast">
29-
</form>
30-
31-
<script>
32-
const backendUrl = 'https://ai-dslab-backend-cpf2feachnetbbck.westus-01.azurewebsites.net';
33-
34-
document.getElementById('uploadForm').addEventListener('submit', async function (e) {
35-
e.preventDefault();
36-
const formData = new FormData();
37-
formData.append('file', document.getElementById('fileInput').files[0]);
38-
39-
try {
40-
const response = await fetch(`${backendUrl}/upload`, {
41-
method: 'POST',
42-
body: formData
43-
});
44-
45-
if (!response.ok) {
46-
const errorText = await response.text();
47-
console.error("Upload error:", errorText);
48-
alert("Upload failed: " + response.status);
49-
return;
50-
}
51-
52-
const data = await response.json();
53-
54-
document.getElementById('summary').textContent = data.summary;
55-
document.getElementById('log').textContent = data.log;
56-
document.getElementById('forecast').textContent = data.forecast;
57-
document.getElementById('plot').src = `${backendUrl}${data.plot_url}`;
58-
document.getElementById('plot').style.display = 'block';
59-
60-
} catch (err) {
61-
console.error("Unexpected upload error:", err);
62-
alert("Upload failed: " + err.message);
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;
6318
}
64-
});
65-
66-
document.getElementById('predictForm').addEventListener('submit', async function (e) {
67-
e.preventDefault();
68-
const futureX = document.getElementById('futureInput').value;
69-
70-
const formData = new FormData();
71-
formData.append('future_x', futureX);
72-
73-
try {
74-
const response = await fetch(`${backendUrl}/predict`, {
75-
method: 'POST',
76-
body: formData
77-
});
7819

79-
if (!response.ok) {
80-
const errorText = await response.text();
81-
console.error("Predict error:", errorText);
82-
alert("Prediction failed: " + response.status);
83-
return;
84-
}
85-
86-
const data = await response.json();
87-
88-
document.getElementById('forecast').textContent =
89-
typeof data.forecast === "string"
90-
? data.forecast
91-
: JSON.stringify(data.forecast, null, 2);
92-
document.getElementById('log').textContent = data.log;
93-
document.getElementById('plot').src = `${backendUrl}${data.plot_url}`;
94-
document.getElementById('plot').style.display = 'block';
95-
96-
} catch (err) {
97-
console.error("Unexpected prediction error:", err);
98-
alert("Prediction failed: " + err.message);
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;
9952
}
100-
});
101-
</script>
102-
</body>
103-
</html>
53+
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>

0 commit comments

Comments
 (0)