-
-
Adding an item - made a seamless process have over 131 brands to choose from
-
Dashboard - This displays key user info like users sales target and recent expenses
-
Reports (Sales target) - users can pick a sales target for the week
-
Inventory - A lot better than a spreadsheet
-
Expense - this page is useful for resellers to keep track of their business expenses
-
Collection Page - Extracting Collection Codes from users gmail
-
Import Data - making the switch over from excel to our system smooth using AI parsing
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
ResponsiveContainerto 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
- date-fns
- firebase
- firestore
- react
- recharts
- stripe
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.