Skip to content
DenisXhabrahimi
Back to work
Data & Software PlatformsCompleted2023

Replacing spreadsheet-driven inventory with a centralized operations platform

FAB Construction Inventory Management System

A construction company tracked stock, tools and job status across spreadsheets and informal messages — so nobody could reliably answer what was in stock, where it was, or which work was blocked.

Summary

Challenge
FAB Construction tracked inventory, tools and work-process status across spreadsheets and informal communication. Current stock levels, the location of materials across sites, and the state of ongoing work were all difficult to establish.
What I built
A full-stack inventory and operations platform: products, multi-location stock, suppliers, stock-movement history and a work-process board, behind role-based access for staff and administrators.
My role
I built this one end to end: the data model, the FastAPI backend, the React frontend, authentication and permissions — and the sessions with staff that established how inventory actually moves between sites.
Outcome
Delivered as IMS v1.0 — CRUD for products, locations and suppliers, JWT role access, stock-movement history, a work-process board and a dashboard with live low-stock alerts — replacing the previous spreadsheet-and-messages tracking. A cleaned-up public rebuild is deployed live with demo credentials.

Stack

ReactTypeScriptFastAPIPostgreSQLJWT AuthREST APIs

Solo build

My contribution
Data model, FastAPI backend, React frontend, authentication and role-based permissions, and the requirements work with FAB staff. The public repository is a from-scratch rebuild of the same system, also written by me.

Detailed write-up

Overview

FAB Construction needed a reliable way to track inventory, tools and materials across multiple sites, and to give managers visibility into which work processes were underway, blocked, or complete. This project delivered a scalable inventory and operations platform tailored to that workflow.

Context

Built as a real, business-oriented system for a construction company during my role as Junior IT Consultant at FAB Construction (2021–2023), alongside deploying the company's broader ERP system, where I was responsible for digitizing internal processes.

What I owned

I designed and built the system end-to-end: data model, backend logic, user interface and role-based access control, working directly with staff to understand day-to-day inventory and operational needs.

The problem

Inventory and work-process status were tracked manually across spreadsheets and informal communication, making it difficult to know current stock levels, locate materials across sites, or track the state of ongoing work processes.

Requirements

  • Full CRUD functionality for inventory products
  • Separate user and administrator roles with distinct permissions
  • Product image uploads
  • Support for multiple storage locations
  • Work-process tracking with statuses: Not Started, In Progress, Completed
  • Responsive interface usable on-site from mobile devices
  • A database design that scales as inventory and locations grow

Architecture

A client-server architecture: a React 18 + TypeScript single-page frontend, a FastAPI REST layer handling JWT authentication and business logic, and a normalized PostgreSQL schema modeling products, locations, suppliers, stock movements and work processes as distinct, related entities. See the diagram below.

Implementation

The frontend was built as a responsive single-page application with dedicated views for inventory browsing, product detail and editing, and work-process boards, using TanStack Query for data fetching and an Axios client with a JWT interceptor. The backend exposes authenticated REST endpoints (FastAPI + SQLAlchemy 2 + Alembic migrations) for CRUD operations, image uploads and role-gated administrative actions, secured with JWT access tokens and bcrypt password hashing. The database schema was normalized around products, locations, suppliers and work-process records to support multi-location reporting.

Product screens

  • FAB Construction IMS dashboard showing total inventory value, stock levels by category, work-order status and a live low-stock alert list
    Dashboard — inventory value, stock levels, work-order status and live low-stock alerts.
  • FAB Construction IMS sign-in screen, localized in Albanian for on-site staff
    Sign-in, localized in Albanian for on-site staff.
  • Add Inventory list screenshot

    Product browsing with per-location stock and search

  • Add Stock movement screenshot

    Stock In / Stock Out / Adjustment history

  • Add Warehouses screenshot

    Multi-location stock view

  • Add Suppliers screenshot

    Supplier records linked to products

  • Add Work processes screenshot

    Not Started / In Progress / Completed board

Architecture and results

  • FAB Construction IMS system architecture: React single-page frontend, FastAPI REST layer with JWT authentication, and a normalized PostgreSQL schema
    System architecture — React SPA, FastAPI REST layer, normalized PostgreSQL schema.

Technical challenges

Modeling inventory that exists simultaneously across multiple locations, while keeping the interface simple enough for non-technical staff to use daily, was the central design challenge. Balancing administrator flexibility with a low-friction experience for regular users required careful role and permission design.

Solutions

Introduced a location-aware inventory schema so stock and work-process records are always tied to a specific site, and layered role-based access control so administrators can manage products and users while regular staff have a focused, simplified workflow.

Results

Delivered as IMS v1.0: a full-stack system (React 18 + FastAPI + PostgreSQL 16) covering product, location and supplier CRUD with image uploads, JWT-based role access (Admin/User), stock-movement history (Stock In / Stock Out / Adjustment), a work-process board, and a reporting dashboard with live low-stock alerts — replacing the spreadsheet- and message-based tracking previously used across FAB Construction's sites. The linked repository is a cleaned-up, from-scratch rebuild of the same system for public review, deployed live at the demo link above — log in as Admin (admin@fabconstruction.com / admin) or User (john.smith@fabconstruction.com / User@123) to try it.

Lessons learned

Working directly with non-technical end users clarified how much interface simplicity matters for daily adoption, and reinforced the value of designing the data model around real operational entities (locations, work processes) rather than generic CRUD tables.

Future improvements

  • Barcode or QR-based stock lookups
  • Automated low-stock alerts delivered via email
  • Reporting dashboards for inventory trends across locations

Contact

Let's build
something
useful.

Hiring for AI, data or platform engineering — or building something technically difficult? Tell me what you are working on.

  • AI & data engineering
  • Forward-deployed / customer-facing engineering
  • Distributed systems
  • Applied AI & automation
  • Data platforms