About LIFELOG

What inspired us. It started with a question that sounds simple: is this insulin still good? Temperature-sensitive medicines like insulin, GLP-1 pens, EpiPens and biologics are watched carefully all the way from the factory to the pharmacy. Then they come home, and the watching stops. Michigan summers bring heat waves and storm outages that knock out power to thousands of homes. Pens sit in hot cars. Mail-order deliveries bake in metal mailboxes. A thermometer can tell you your medicine is cold right now, but that isn't what you need to know. Heat damage adds up: three hours in a car last Tuesday still counts today. That gave us our idea. We wouldn't tell people whether their medicine is cold. We'd tell them how much safe life it has left.

How we built it. LIFELOG gives every medicine a "life budget" built from the storage rules on its real FDA label. Each temperature reading uses up part of that budget, at the rate the label allows. We stored every reading in Tiger Data (TimescaleDB). Rollups that update themselves keep the dashboard fast, and compression keeps months of minute-by-minute data small. Jobs that run inside the database raise alerts within seconds. PostGIS maps which homes are inside a real DTE power outage and ranks neighbours by whose medicine runs out first. We used Google Gemini to read medicine labels from a photo, turn "I left it in the car for two hours" into data, and answer questions about the user's own data. Every Gemini feature also has a rule-based fallback, so the app keeps working if the AI is unavailable. On top of that we added:

  • a forecasting model trained separately for each medicine
  • tamper-evident exposure receipts a pharmacist can check by scanning a QR code
  • dose tracking that answers "was the dose I took last Tuesday still good?"
  • accounts kept private by the database itself (Postgres row-level security), so nobody can see anyone else's medicines
  • a pharmacist review step before any new heat-tolerance number goes live

What we learned. Being right about medicine matters more than looking clever. We calculate each budget three independent ways and check that the answers agree. When a label says nothing about how long a medicine tolerates heat, we make an assumption, and we show that assumption instead of hiding it. We learned a lot about time-series data: averaging readings before scoring them hides short heat spikes, and readings that arrive late need special handling or the dashboard quietly shows the wrong answer. We also learned that the hard part of a health tool isn't the math. It's earning trust: showing sources, admitting what you don't know, and letting a pharmacist have the final say.

The challenges we faced. Sensors don't always upload on time. Late data sat hidden behind the database's precomputed rollups until we built a way to detect it and recalculate just the affected period. We hit Gemini's free-tier limits partway through, which pushed us to make every feature work without AI. Combining two teammates' branches took careful merging so that nobody's work was lost. Turning the 8-hour heat assumption into real evidence meant reading actual studies. That's how we found a 1994 study where the EpiPen-strength solution showed no significant loss after 12 weeks of daily heating to 70°C. One of our most stubborn bugs was invisible: a single style rule had shrunk the map's drawing layer, so outage areas never appeared on screen. In the end LIFELOG became what we set out to build: a tool that turns a pile of temperature readings into one clear answer, with the evidence behind it.

Built With

Share this project:

Updates

Submission history