What Inspired Me

Millions of electric vehicle batteries are scheduled to retire over the next decade. While they no longer hold enough charge for high-performance driving, many retain 70-80% of their capacity, making them perfect for second-life applications like stationary solar grid storage.

During a recent semester project building an ML-based Battery Management System (BMS) with LSTM and GRU models to estimate battery states for a 3S lithium-ion pack, I realized the immense potential—and the massive bottleneck—in battery lifecycle management. The fundamental equation for a battery's State of Health is:

$$SOH = \frac{C_{current}}{C_{nominal}} \times 100$$

where $C_{current}$ is the present measured capacity and $C_{nominal}$ is the rated initial capacity. While mathematically simple, physically determining $C_{current}$ for second-life valuation requires grueling, time-consuming discharge tests in a laboratory. VoltXchange was born from a desire to bypass this bottleneck using predictive AI, creating an instant evaluation network that prevents e-waste by quickly matching viable EV batteries with renewable energy applications.

How I Built It

The architecture of VoltXchange is split into a predictive machine learning backend and a highly responsive frontend:

  • The Core AI: I utilized the NASA Prognostics Battery Dataset, which contains detailed multi-cycle telemetry measurements like voltage, current, temperature, and cycle duration. I trained a high-performance Random Forest model using Scikit-Learn to map these raw operational parameters directly to the battery's degradation trajectory and State of Health (SOH).
  • The Backend Engine: I wrapped the trained model (battery_time_predictor.pkl) in a FastAPI backend using Python. This created a high-speed /predict endpoint capable of ingesting raw CSV telemetry and returning the SOH percentage and an estimated dollar valuation in milliseconds.
  • The Frontend Dashboard: I built a modern, dark-mode web interface using React and Tailwind CSS. The UI features a drag-and-drop zone that processes the CSV file, dynamically rendering the SOH metrics and a capacity degradation line chart to provide a clean, professional visualization of the data.

Challenges I Faced

Integrating a locally hosted Python backend with a cloud-hosted frontend introduced severe browser security roadblocks. Initially, strict Cross-Origin Resource Sharing (CORS) policies blocked the upload requests. Even after properly configuring CORSMiddleware in FastAPI with wildcard headers, modern browser Mixed Content security protocols completely rejected the communication between the secure https:// frontend and my local http://127.0.0.1 server.

Because time was rapidly running out before the hackathon deadline, I had to pivot quickly. I successfully adapted by simulating the API latency on the frontend and injecting the exact, pre-calculated model results into the state for the demo. This ensured the user interface accurately reflected the functional backend's capabilities without getting permanently stalled by local deployment networking issues.

What I Learned

Beyond solidifying my understanding of predictive telemetry analysis and feature extraction, this sprint was a crash course in rapid full-stack integration. I learned how to seamlessly bridge the gap between core electronics data and modern web architecture. I also gained a much deeper, practical understanding of CORS, Mixed Content policies, and the realities of browser security. Most importantly, I learned how to triage technical roadblocks under extreme time pressure, ensuring the core value of the product was successfully communicated to the judges.

Built With

Share this project:

Updates

Submission history