A self-hosted moving inventory tracker built with Blazor Server on .NET 10. Track every item in your move — where it's coming from, where it's going, how heavy and bulky it is, and how long it will take to unpack and set up at the new place.
Dashboard
- At-a-glance stats: total items, volume (ft³), estimated weight, and packing progress
- Visual progress bar for packing completion
- High-priority unpacked items flagged in red so nothing critical gets missed
- Items grouped by category
Inventory
- Add, edit, and delete items with a modal form
- Track origin room → destination room for each item
- Record dimensions (W × H × D in inches) with automatic cubic feet calculation
- Weight tracking in lbs
- Estimated unpack and setup/deploy time per item (formatted as
1h 30m) - Time Overview panel showing total unpack time, setup time, and combined move time across all items
- Priority levels: High, Medium, Low
- Status workflow: Not Packed → Packed → Loaded → Delivered
- Categories: Furniture, Electronics, Appliances, Clothing, Boxes, Fragile, Kitchen, Books, Other
- Free-text notes per item
Filtering & Search
- Search by item name or notes
- Filter by category, room, priority, or status
Persistence
- Inventory is saved to a local
inventory.jsonfile — no database required
The easiest way to run MoveIT is via Docker. The image is published to Docker Hub at ayeeandre/moveit.
Run with Docker:
docker run -d -p 8080:8080 --name moveit ayeeandre/moveit:latestThen open http://localhost:8080 in your browser.
Run with Docker Compose:
services:
moveit:
image: ayeeandre/moveit:latest
ports:
- "8080:8080"
restart: unless-stoppedPortainer: Pull ayeeandre/moveit:latest and map host port 8080 → container port 8080.
Note on persistence: The inventory is stored inside the container at
/app/inventory.json. To persist data across container restarts, mount a volume:docker run -d -p 8080:8080 -v moveit_data:/app --name moveit ayeeandre/moveit:latest
Build from source:
git clone https://github.com/AndresCyberReady/MoveIT.git
cd MoveIT
docker build -t moveit:latest .
docker run -d -p 8080:8080 moveit:latest| Layer | Technology |
|---|---|
| Framework | ASP.NET Core / Blazor Server |
| Runtime | .NET 10 |
| UI | Bootstrap 5 (via Blazor template) |
| Storage | JSON file (via System.Text.Json) |
Quickest way — Docker:
docker run -d -p 8080:8080 ayeeandre/moveit:latestOpen http://localhost:8080.
Run from source — Prerequisites: .NET 10 SDK
git clone https://github.com/AndresCyberReady/MoveIT.git
cd MoveIT/MoveIT
dotnet runThen open https://localhost:5001 (or the URL shown in the terminal) in your browser.
The inventory is stored in MoveIT/inventory.json and is created automatically on first run.
MoveIT/
├── Components/
│ ├── Pages/
│ │ ├── Home.razor # Dashboard
│ │ └── Inventory.razor # Item list, filters, add/edit/delete
│ └── Layout/
│ └── NavMenu.razor # Sidebar navigation
├── Models/
│ └── MovingItem.cs # Item model + enums
├── Services/
│ └── InventoryService.cs # In-memory list + JSON persistence
└── inventory.json # Auto-generated data file (git-ignored)
Each item stores:
| Field | Type | Description |
|---|---|---|
| Name | string | Item label |
| Category | enum | Furniture, Electronics, etc. |
| OriginRoom | string | Where it currently lives |
| DestinationRoom | string | Where it's going |
| Priority | enum | High / Medium / Low |
| Status | enum | NotPacked / Packed / Loaded / Delivered |
| WidthIn / HeightIn / DepthIn | double? | Dimensions in inches |
| WeightLbs | double? | Weight in pounds |
| UnpackMinutes | int? | Estimated minutes to unpack |
| SetupMinutes | int? | Estimated minutes to set up / deploy |
| Notes | string | Free-text notes |
Cubic feet and total time are computed on the fly and not stored.
MIT