Home Projects Portfolio Dashboard Export PDF Log in
TypeScript React

Scaling Data Insights in Carburant: From Memory to Metrics

Managing fuel consumption data requires more than just tracking numbers; it demands robust data persistence and a user-friendly interface. In the Carburant project, we recently focused on transforming raw file uploads into actionable insights while ensuring the platform remains accessible to a global, yet primarily French-speaking, user base.

The Challenge: Handling Historical Data

Previously, our application struggled to reconcile uploaded data with persistent storage, often leading to "N/A" displays even when data was present. We needed a system that could accurately parse fuel consumption, calculate efficiency metrics like IPE and SER, and visualize these findings without overwhelming the browser or losing state during navigation.

Implementation Strategy

We transitioned to a persistent state model where uploaded files are indexed and stored for quick retrieval. By integrating a reactive charting library, we can now represent historical fuel trends effectively. To handle localization, we standardized our labels and UI components to support French, ensuring that users see localized content natively.

Here is how we ensure data is displayed gracefully when no information is found:

interface ConsumptionData {
  value: number | null;
  date: string;
}

const displayMetric = (data: ConsumptionData | undefined): string => {
  return data?.value ? `${data.value} L/100km` : 'N/A';
};

This simple pattern prevents the "undefined" errors that plague data-heavy dashboards and provides a clean, predictable UI output.

Refining the User Experience

We also addressed UI inconsistencies, specifically within the light mode layout, which previously suffered from alignment issues. By standardizing our component styles, we achieved a consistent "look and feel" across different devices.

Key Takeaways

  1. Data Defaults: Always define a fallback state for missing data (e.g., displaying "N/A").
  2. Persistence: For long-running React applications, ensure that imported file data is decoupled from the component lifecycle.
  3. Localization: Don't treat language as an afterthought; use constants for labels to make swapping languages trivial as your user base grows.

By focusing on these core pillars, Carburant is now more reliable, easier to navigate, and ready to scale with user needs.


Generated with Gitvlg.com

Scaling Data Insights in Carburant: From Memory to Metrics
ALA NEJI

ALA NEJI

Author

Share: