๐Ÿ’Š ShelfLife

A smarter way to manage pharmaceuticals/lab/hospital or at home medicines

ShelfLife is a full-stack medicine-management platform designed to help medical professionals/pharmacies/family keep track of the medicines, expiry dates, and potential medication combinations โ€” all in one place.


โœจ Inspiration

Medicine cabinets are full of products that people forget about.

A medicine can expire, get forgotten at the back of a cabinet, or be taken alongside another medicine without the user realizing there may be an interaction. We wanted to build something that made managing medicines simple, visual, and proactive, rather than forcing people to manually keep track of everything.

That idea became ShelfLife: a digital medicine companion designed to help people know what they have, what is expiring, and what they should pay attention to.

Instead of treating a medicine cabinet as a collection of boxes, ShelfLife treats it as something that can actually be managed intelligently.


๐Ÿš€ What it does

ShelfLife provides a centralized place to manage and keep track of medicines.

๐Ÿ’Š Medicine Management

  • Add and organize medicines in a personal collection
  • View detailed information about individual medicines
  • Keep an overview of everything in your medicine cabinet

๐Ÿ“… Expiry Tracking

  • Track medicine expiry dates
  • Identify medicines approaching expiration
  • Reduce the chance of forgotten medicines sitting unused

โš ๏ธ Combination & Safety Checks

  • Check potential medicine combinations and interactions
  • Surface information users should pay attention to before combining medicines

๐Ÿ” Secure Access

  • Personal user accounts
  • Google OAuth authentication
  • Persistent, user-specific medicine data

The goal is simple: make it harder to forget what is sitting in your medicine cabinet.


๐Ÿ› ๏ธ How we built it

ShelfLife was built as a modern full-stack web application.

Frontend

Technology Purpose
โš›๏ธ React User interface
๐Ÿงญ TanStack Start / Router Full-stack routing and application architecture
โšก Vite Development and production build tooling
๐ŸŽจ Tailwind CSS Styling and responsive UI
๐Ÿงฉ Radix / shadcn components Accessible UI components
โœจ Lucide Interface icons

Backend & Data

  • Supabase โ€” authentication and database functionality
  • Google OAuth โ€” secure sign-in
  • TanStack Start + Nitro โ€” server-side functionality and production deployment

Deployment & Development

  • Vercel โ€” production hosting
  • GitHub โ€” version control

We designed the application around a component-based architecture so that features such as medicines, profiles, authentication, and medicine combinations could remain modular and maintainable.


๐Ÿงฉ Challenges we ran into

One of our biggest challenges was getting the application from a working local development environment to a working production deployment.

ShelfLife uses TanStack Start with server-side rendering, which meant that deploying it was more complicated than simply uploading a static Vite application. We initially encountered persistent Vercel 404 NOT_FOUND errors even though the application built successfully locally.

We had to investigate the difference between the client and server build outputs, understand how TanStack Start uses Nitro for deployment, and correctly configure the production environment.

Authentication presented another challenge. Google OAuth worked locally, but after deploying, the authentication flow initially redirected users back to localhost instead of the production application.

We had to trace the entire OAuth flow across our application, Supabase, Google Cloud, and Vercel before correcting the production redirect configuration.

These problems were frustrating, but they forced us to understand how the pieces of a full-stack application actually communicate, rather than treating deployment as a black box.


๐Ÿ† Accomplishments we're proud of

We're particularly proud that we turned ShelfLife from an idea into a fully deployed, functioning application.

What we accomplished

  • ๐Ÿ’Š Built a complete medicine-management experience
  • ๐Ÿ” Implemented authentication and Google OAuth
  • ๐Ÿ—„๏ธ Connected the application to persistent backend data
  • โš ๏ธ Created medicine combination/interaction functionality
  • ๐Ÿš€ Successfully deployed a TanStack Start application with SSR
  • ๐Ÿ› Debugged production-only deployment and authentication issues
  • ๐Ÿ“ฑ Built a polished, responsive interface rather than stopping at a prototype

Most importantly, we didn't give up when our local application worked but the production deployment didn't.

We kept investigating until we had a live application that users could actually access.


๐Ÿง  What we learned

This project taught us that building an application isn't just about writing code.

We learned how different layers of a modern web application interact:

Frontend
   โ†“
Router
   โ†“
Server
   โ†“
Database
   โ†“
Authentication
   โ†“
OAuth
   โ†“
Deployment

We also learned how dramatically production can differ from localhost.

A successful:

npm run build

doesn't necessarily mean that an application is correctly configured for its hosting environment.

Working through our deployment and OAuth problems gave us practical experience debugging issues involving Vercel, TanStack Start, Nitro, Supabase, Google OAuth, environment variables, and Git.

Most importantly, we learned to debug systematically instead of immediately rebuilding everything when something goes wrong.


๐Ÿ”ฎ What's next for ShelfLife?

ShelfLife is only the beginning.

Our next goal is to make the platform significantly more intelligent and useful.

๐Ÿค– Intelligence

  • AI-assisted medicine information and explanations
  • Smarter personalized expiry and refill reminders
  • More sophisticated interaction and safety checks

๐Ÿ“ธ Automation

  • Scan medicine packaging to automatically add medicines
  • OCR-based extraction of medicine names and expiry dates
  • Reduce manual data entry

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Collaboration

  • Household/shared medicine cabinets
  • Shared reminders and inventory management

๐Ÿ“Š Insights

  • Medicine usage and inventory analytics
  • Smarter recommendations based on a user's collection
  • More comprehensive medicine databases

๐Ÿ“ฑ Beyond the Web

  • Dedicated mobile experience
  • Notifications and reminders that follow users beyond the browser

Ultimately, we want ShelfLife to evolve from a medicine inventory tracker into an intelligent personal medication-management platform.


### ๐Ÿ’š ShelfLife **Know what you have. Know what matters.**

Built With

Share this project:

Updates

Submission history