Nice Rack

Internal inventory & racking management for signage workshops

What is this?

Nice Rack is a custom-built inventory and racking management system designed for use in a signage workshop environment. It tracks sheet materials, sizes, thicknesses, quantities, and physical rack locations in real time.

I built this tool for my day-to-day signage work to replace whiteboards, spreadsheets, and unreliable manual stock tracking.

How it Works

Materials are stored as structured entries with live search, filtering, and quantity updates. Firestore keeps everything in sync across devices instantly.

🧱

Material Tracking

Sheets, sizes & quantities

📍

Rack Locations

Physical rack & row mapping

Live Sync

Real-time Firestore updates

🧠

Smart Merging

No duplicate stock entries

Real-Time Inventory Sync & Smart Merge
// Live Firestore sync — updates inventory in real time
onSnapshot(query(materialsRef), snapshot => {
  allMaterials = [];
  typesSet.clear();

  snapshot.forEach(doc => {
    const data = doc.data();
    allMaterials.push({ id: doc.id, data });
    if (data.type) typesSet.add(data.type);
  });

  render(); // Rebuild UI instantly on change
});

// Merge incoming stock instead of duplicating entries
async function mergeIntoStock(items) {
  for (const item of items) {
    const q = query(
      collection(db, "materials"),
      where("name", "==", item.name),
      where("type", "==", item.type),
      where("thickness", "==", item.thickness),
      where("size", "==", item.size)
    );

    const snap = await getDocs(q);

    if (!snap.empty) {
      const ref = snap.docs[0].ref;
      const currentQty = snap.docs[0].data().quantity || 0;

      await updateDoc(ref, {
        quantity: currentQty + item.quantity
      });
    } else {
      await addDoc(collection(db, "materials"), item);
    }
  }
}

Built for the Workshop

Nice Rack is designed for real production use — fast, simple, and usable on phones, tablets, and shared workshop computers without training.

What I Learned

This project reinforced the value of building tools around real workflows. Reliability, clarity, and speed matter more than visual polish in production environments.