Skip to content

rangeroper/ToteTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToteTrack box icon

🚀 Demo      •      🛠️ Contribute

✨ If you would like to help spread the word about ToteTrack, please consider starring the repo!

What is ToteTrack?

A full-stack inventory management application built with FastAPI (backend) and React (frontend). It offers efficient storage control with powerful tagging, filtering, and fast item manipulation. Each tote is assigned a unique QR code for instant tracking (point your camera at the QR code and be redirected to the totes page), content visibility, and precise location identification at a glance.

Add photos of your tote contents to never forget what you’ve stored inside. Say goodbye to guessing where your totes are, what’s inside them, or worrying about perishables and electronics being misplaced or forgotten.

🚀 Getting Started

Prerequisites

  • Python 3.10.9
  • MongoDB

🔧 Backend Setup (FastAPI)

Navigate to the backend folder:

cd backend

Install dependencies:

Create a virtual environment (optional but recommended):

python -m venv env
source env/bin/activate  # On Windows: .\env\Scripts\activate

Install packages:

pip install -r requirements.txt

Start the server:

uvicorn app.main:app --reload

By default, this runs at http://127.0.0.1:8000.

💻 Frontend Setup (React)

Navigate to the frontend folder:

cd frontend

Install dependencies:

npm install

Start the development server:

npm start

This will run the frontend on http://localhost:3000.

✨ Features

📦 Create, edit, and delete inventory totes
Easily manage your storage units with intuitive controls.

Edit Tote Feature


🏷️ Assign and manage tags for easier classification
Organize your totes with custom tags to simplify sorting and searching.


📍 Assign and manage multiple storage locations (coming soon)
Track items across different warehouses, units, or facilities.


🔖 Assign and manage statuses (coming soon – free text for now)
Use status labels to identify item condition, progress, or availability.


🔍 Powerful search and filter tools
Search across barcode, description, weight, location, or tags.
Filter by:

  • Tag type
  • Weight (exact, over, under)
  • Image presence (no images, minimum number of images)

Filtering Feature


🧾 View contents of individual totes
See everything stored inside a tote — including quantity, images, and notes.

Tote Detail Page


📍 Track tote location details
Store and view tote position by aisle, row, and shelf.


Scan or generate QR codes for each tote
Each tote gets a scannable QR code for fast access and updates.


💻 Modern, responsive UI built with React
Works beautifully on both desktop and mobile devices.

⚙️ Unified Settings Page Centralized management for profiles, accounts, tags, locations, statuses, and permissions

Settings Page


📦 API Endpoints

Tote Routes

  • GET /totes - Get all totes
    Returns a JSON object with all totes.

  • GET /totes/{id} - Get a tote by ID
    Returns the tote matching the MongoDB ObjectId.

  • POST /totes - Create a new tote
    Accepts form data (barcode required, optional description, weight, tags, status, location, images). Generates a QR code for the new tote.

  • PATCH /totes/{id} - Edit tote (partial)
    Accepts form data for description, weight, tags, status, location, existingImages (base64), and new image uploads. Merges new images with existing ones and updates the tote.

  • DELETE /totes/{id} - Delete tote
    Deletes the tote matching the MongoDB ObjectId.

Tag Routes

  • GET /tags — List all tags
    Returns a JSON object with all tags.

  • POST /tags — Create a new tag
    Returns the created tag object.

  • GET /tags/{tag_id}/affected-count — Get number of totes using the tag
    Returns the count of totes that have this tag applied.

  • PATCH /tags/{tag_id} — Rename a tag
    Renames the tag and updates all totes to replace old tag name with the new one.

  • DELETE /tags/{tag_id} — Delete a tag
    Deletes the tag and removes it from all totes referencing it.

Location Routes

  • GET /locations — List all locations
    Returns a JSON object with all locations.

  • POST /locations — Create a new location
    Returns the created location object.

  • GET /locations/{location_id}/affected-count — Get number of totes assigned to the location
    Returns the count of totes that have this location assigned.

  • PATCH /locations/{location_id} — Rename a location
    Renames the location and updates all totes to replace the old location name with the new one.

  • DELETE /locations/{location_id} — Delete a location
    Deletes the location and removes it from all totes referencing it.

Status Routes

  • GET /statuses — List all statuses
    Returns a JSON object with all statuses.

  • POST /statuses — Create a new status
    Returns the created status object.

  • GET /statuses/{status_id}/affected-count — Get number of totes assigned this status
    Returns the count of totes that have this status applied.

  • PATCH /statuses/{status_id} — Rename a status
    Renames the status and updates all totes to replace the old status name with the new one.

  • DELETE /statuses/{status_id} — Delete a status
    Deletes the status and removes it from all totes referencing it.

Batch Routes

  • coming soon!

🗂 Folder Structure

inventory_management/
├── backend/           # FastAPI backend
├── frontend/          # React frontend
├── README.md

✅ Coming Soon

  • Bulk and batch actions (apply changes across multiple totes or items)
  • Manage multiple storage locations
  • Support for multiple accounts and user profiles
  • User authentication and login
  • Role-based access control (e.g. admin, viewer, editor)
  • View itemized contents within each tote (including quantity and estimated value)
  • View itemized overview for each storage location (total totes, items, and estimated value)
  • Global inventory dashboard showing summary across all locations (totes, items, estimated value)
  • Global inventory dashboard showing summary across all locations (totes, items)
  • Color-coded QR codes
  • Flexible data export with permission-based access — export all data or filter by account, user profile, storage location, specific tote, or individual item
  • AI - have gpt or claude or similar models auto-generate or recommend descriptions, estimated values, or any other assisted tasks

📄 License

MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published