Joso Škarica

Project

BloomOps

Inventory management system for florists — track stock, manage products, record shipments, fulfill orders, and monitor financials from one dashboard.

BloomOps dashboard

Problem

Small flower shops typically manage inventory through spreadsheets, handwritten notes, or memory — tracking what stock is on hand, which supplier it came from, and what orders need fulfilling is scattered across tools and easily lost. There was no lightweight, purpose-built solution for the day-to-day operations of a florist.

Solution

BloomOps is an all-in-one operations tool built specifically for flower shop owners. It brings products, suppliers, shipments, orders, and financial reporting into a single authenticated interface, keeping the full picture of the business visible at a glance.

Core features

  • Auth and protected routes
  • Product inventory with SKU, cost & sell pricing, and stock quantity
  • Supplier management with contact details
  • Shipment recording to increase stock levels
  • Customer order management (draft → confirmed → fulfilled)
  • Low-stock alerts and minimum stock thresholds
  • Dashboard with live KPIs — stock value, gross profit, monthly sales
  • Reports: stock by category, top-selling products, monthly sales & profit tables

Workflow

  1. Add suppliers and products
  2. Record incoming shipments to update stock
  3. Create customer orders and track fulfilment status
  4. Monitor dashboard for stock value and gross profit
  5. Review reports for top sellers and monthly trends

Screenshots

BloomOps — Login
Login
BloomOps — Dashboard
Dashboard
BloomOps — Product inventory
Product inventory
BloomOps — Add product
Add product
BloomOps — Orders
Orders
BloomOps — New order
New order
BloomOps — Suppliers
Suppliers
BloomOps — Shipments
Shipments
BloomOps — Reports & analytics
Reports & analytics

What I learned

  • Building “inventory management” in the abstract would have been a features list. Building it for a florist forced specific decisions: perishable stock assumptions, seasonal ordering patterns, cost-vs-sell margins on arrangements. The constraint sharpened every screen.
  • The entity graph — products linked to suppliers, suppliers linked to shipments, shipments updating stock, stock consumed by orders — had to be modelled before I wrote a single component. Getting that wrong would have meant rewriting half the app. I got it mostly right by drawing it on paper first and noticing where a change to one entity would cascade.
  • The dashboard KPIs (stock value, gross profit, monthly sales) are recalculated live. The moment I added them, the app went from feeling like a data entry tool to feeling like a business tool. A read-only summary screen can transform the perceived value of everything behind it.
  • Eight different CRUD forms that each looked slightly different would have felt like eight different apps. Standardising the form layout, field spacing, and button placement early meant I could move fast on new features without design decisions slowing me down.

Next steps

  • Real florist feedback and workflow validation
  • Multi-user / team access
  • Invoice and receipt generation
  • Low-stock email notifications