Robert SpearsFull stack developer
← Overview

StageInv

Not released

An inventory management application for home staging, built independently with Django and JavaScript.

Track products and accessories across warehouses, properties, and rooms. Find available stock, select items, assign them to a location, and return them to inventory.

What I built

Backend & performance

Optimized database queries and connection reuse, coordinated inventory updates with atomic transactions and row locking, and implemented company specific access and logging.

Frontend & interactions

Built responsive warehouse views, async updates, and a selection cart that preserves state. Added page preloading and animated navigation to the sales website.

Product screenshots & demos

Development details

Open a topic for the technical details.

Database performanceRequest tracing, query loading, latency

I traced slow requests through Django views and templates, comparing network timings with logs of individual database calls. A local server connected to the hosted database helped identify database access as a major source of delay.

I used related data loading and prefetching to reduce repeated queries, reused database connections, and brought the application and database closer geographically to reduce network latency.

Data consistency & errorsTransactions, locking, scoped access

Repeated clicks and overlapping requests exposed early assumptions about inventory changes. I added atomic transactions and row locking to coordinate updates, plus company specific lookups to keep data separated.

Controls disable during requests, and errors appear in context without replacing the page. Logging supports debugging, and dynamic HTML handling required care with values entered by users.

State & interface behaviorHTMX, async JavaScript, feedback

Before adopting HTMX, I built asynchronous HTML requests and content replacement in plain JavaScript, including page and scroll state. That made it easier to understand what HTMX was simplifying.

The warehouse updates without full reloads while cart selections stay intact. JavaScript synchronizes controls, coordinates menus and overlays, and animates search and inventory changes.

Sales website navigation & motionPreloading, transitions, butterflies

I directed AI assisted development of HTML preloading and cached navigation so the sales website could transition between pages without a full refresh. Shared styles and scripts keep navigation consistent.

The butterflies avoid text and controls, rest between flights, and react to nearby mouse movement. This portfolio reuses that animation system and the same page transition technique.

Why I built it

Working in home staging showed me how much inventory tracking relied on tape labels and memory. I started StageInv in my own time with basic Python knowledge and learned the rest by building and improving it over three years.

Friends and coworkers have tested the app. Their suggestions led to changes such as navigation tooltips. It has not yet been publicly released or adopted by a company; I’m polishing the sales website toward launch.

I wrote the original application while teaching myself web development. Later work uses AI assistance, with me directing and reviewing the changes.