Inspiration

We were juggling spreadsheets, email threads, and manual reminders while running our shoe reselling side-hustle. Every sale, expense, and collection code felt like a mini fire drill. We dreamed of a single, data-driven dashboard that could tie everything together—so we built one.

What it does

  • Real-time inventory & sales tracking across multiple platforms
  • Expense monitoring with category breakdowns
  • Visual KPI reports (weekly/monthly spend vs. revenue, net profit, conversion rates)
  • Automations & reminders (Gmail sync, collection-code imports, summary emails)
  • Flexible feature-gating by subscription tier (Starter, Pro, Elite) ## How we built it
  • Frontend: React + TypeScript, TailwindCSS, Context API for global state
  • Charts: Recharts for interactive ComposedCharts, PieCharts, AreaCharts
  • Backend: Firebase Firestore + Cloud Functions for Gmail/collection sync and scheduled summary emails
  • Date logic: date-fns for ISO weeks, rolling 12-week analyses, month boundaries
  • Billing: Stripe Checkout + webhooks to enforce plan limits and automate upgrades

Challenges we ran into

  • Firestore rate-limits: Implemented exponential backoff and batched writes to avoid “max backoff” errors
  • Complex date math: ISO-week boundaries and daylight-savings edge cases required extensive testing
  • Responsive charts: Getting ResponsiveContainer to play nice on mobile took several layout tweaks
  • Feature-gating: Safely enforcing “1 image upload” or “10-row CSV” at both frontend and backend
  • Balancing detail vs. clarity: Hiding advanced metrics behind toggles so newcomers don’t get overwhelmed

Accomplishments that we're proud of

  • A single pane of glass for all our resell operations—no more hunting through Gmail or Google Sheets
  • Weekly summary emails that land in our inbox automatically every Monday morning
  • A tiered subscription model that scales from solo flippers to reseller teams
  • Dark-mode support and inline editing (e.g. adjusting max capacity) without page reloads
  • A robust automation suite that can remind us when to collect, ship, or restock ## What we learned
  • State management at scale with React Context and hooks
  • Type safety pays dividends: fewer runtime surprises once TypeScript types were solid
  • Performance tuning: Debouncing, lazy-loading CSV imports and images for snappy UX
  • User experience: The art of showing the right data at the right time, and progressive disclosure
  • API design: Crafting Cloud Functions that feel as seamless as native features ## What's next for UpTrend
  • AI-Powered Insights: Automated anomaly detection, smart pricing suggestions
  • Team Collaboration: Shared inventory pools, role-based permissions
  • Mobile Companion App: Scan barcodes, list new items, approve sales on the go
  • Advanced Analytics: Cohort analysis, seasonal trend forecasting, deeper breakouts by brand/model
  • More Automations: SMS reminders, dynamic repricing, inventory reorder triggers

Built With

Share this project:

Updates