Skip to main content

PowersIOT CRM

Custom single-page operations app for scheduling, user and inventory management, and project punch lists. Built as a set of modules that share one shell.

Problem​

Field and office teams were jumping between separate tools for tech scheduling, user admin, warehouse views, and punch lists. Context switching and duplicate entry slowed dispatch and reporting.

Solution​

A modular SPA with shared navigation and UI primitives: auth, role-aware dashboards, and dedicated areas for users, inventory, and punch lists. Redux holds cross-screen state. Bootstrap covers tables, forms, and modals so the UI stays consistent without a custom design system.

Module surface area (illustrative)​

Relative emphasis of implemented areas in the shipped CRM (for navigation and planning discussions):

Loading chart…

Impact​

  • One login and shared patterns across the operations workflows.
  • Staff learn one app chrome instead of several separate UIs.

Lessons learned​

  • Agree module boundaries early. Shared Redux slices get messy if everything reaches into everything else.
  • Bootstrap is fast to ship with. Theme tokens still help if the product lives longer than a quarter.
  • Mixed Node and PHP backends are fine when API contracts and auth are clear.

Tech stack​

  • Frontend: React, Redux, Bootstrap
  • Backend: Node.js, PHP
  • Database: MySQL

Screenshots​

Login

PowersIOT Tech Scheduling

Dashboard

PowersIOT Tech Scheduling

User management

PowersIOT Tech Scheduling

Inventory

PowersIOT Tech Scheduling

Punch list

PowersIOT Tech Scheduling