diff --git a/frontend/src/components/Statistics.jsx b/frontend/src/components/Statistics.jsx
index 48ba782..5b8af65 100644
--- a/frontend/src/components/Statistics.jsx
+++ b/frontend/src/components/Statistics.jsx
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from "react";
import ObjectTypeProportionPieChart from "./charts/ObjectTypeProportionPieChart";
import LoadingOverlay from "./LoadingOverlay.jsx";
import HeatmapContainer from "./charts/HeatmapContainer";
+import PunctualityLineChart from "./charts/PunctualityLineChart.jsx";
const Statistics = () => {
const [transientTypes, setTransientTypes] = useState([]);
@@ -9,8 +10,11 @@ const Statistics = () => {
const [trainStatuses, setTrainStatuses] = useState([]);
const [trainLatenesses, setTrainLatenesses] = useState([]);
const [coordinates, setCoordinates] = useState([]);
+ const [punctualityData, setPunctualityData] = useState([]);
+
const [loading, setLoading] = useState(true);
const [heatmapLoading, setHeatmapLoading] = useState(true);
+ const [punctualityLoading, setPunctualityLoading] = useState(true);
const [error, setError] = useState("");
// Fetch transient data separately
@@ -68,6 +72,30 @@ const Statistics = () => {
fetchCoordinates();
}, []);
+ // Fetch punctuality data
+ useEffect(() => {
+ const fetchPunctualityData = async () => {
+ try {
+ const response = await fetch("https://z3o9pdmy8g.execute-api.us-east-1.amazonaws.com/return_punctuality_by_timestamp");
+ if (!response.ok) throw new Error("Network response was not ok");
+ const data = await response.json();
+
+ const formattedData = data.map(item => ({
+ time: new Date(parseInt(item.timestamp) * 1000).toLocaleString(),
+ punctuality: parseFloat(item.average_punctuality)
+ }));
+
+ setPunctualityData(formattedData);
+ } catch (error) {
+ setError("Failed to fetch punctuality data");
+ } finally {
+ setPunctualityLoading(false);
+ }
+ };
+
+ fetchPunctualityData();
+ }, []);
+
if (loading) return
{error}
; @@ -120,10 +148,19 @@ const Statistics = () => {Loading Punctuality Data...
+ ) : ( +