Giter Club home page Giter Club logo

inventree's Introduction

InvenTree logo

InvenTree

Open Source Inventory Management System

License: MITGitHub tag (latest SemVer) CI Documentation Status Docker Build OpenSSF Best Practices OpenSSF Scorecard Netlify Status Maintainability Rating

codecov Crowdin GitHub commit activity Docker Pulls

GitHub Org's stars Twitter Follow Subreddit subscribers

🌟 About the Project

InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.

Check out our website for more details.

🧭 Roadmap

Want to see what we are working on? Check out the roadmap tag and horizon milestone.

🛠️ Integration

InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:

👾 Tech Stack

Server
Database
Client
DevOps

🧰 Deployment / Getting Started

There are several options to deploy InvenTree.

Single line install - read the docs for supported distros and details about the function:

wget -qO install.sh https://get.inventree.org && bash install.sh

Refer to the getting started guide for a full set of installation and setup instructions.

📱 Mobile App

InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.

👋 Contributing

Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.

📜 Translation

Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.

💸 Sponsor

If you use InvenTree and find it to be useful, please consider sponsoring the project.

💎 Acknowledgements

We would like to acknowledge a few special projects:

Find a full list of used third-party libraries in our documentation.

❤️ Support

This project is supported by the following sponsors:

Martin Löper Oliver Lippert Seth Smith SpaceQuest Ltd Appwrite Cabot Technologies Markus Kasten Jess Haynes

With ongoing resources provided by:

Servers by Digital Ocean Deploys by Netlify Translation by Crowdin

⚠️ License

Distributed under the MIT License. See LICENSE.txt for more information.

inventree's People

Contributors

30350n avatar 42crmo4 avatar bcc avatar bloemp avatar codingpupper3033 avatar dependabot[bot] avatar eeintech avatar exp avatar github-actions[bot] avatar hasecilu avatar jnewlands avatar lavissawow avatar lippoliv avatar luwol03 avatar maksimstojkovic avatar martonmiklos avatar matmair avatar mattbnz avatar miggland avatar nwns avatar p-fruck avatar rkalman avatar rocheparadox avatar schrodingersgat avatar sergeolacruz avatar simonkuehling avatar sintech avatar sur5r avatar wolflu05 avatar zakx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

inventree's Issues

Spreadsheet import

Parts

  • 'Wizard' Interface
    • Step 1 - Import parts
    • Step 2 - Associate BOM items
    • Step 3 - Create supplier parts
    • Step 3 - Finalize data
  • No data actually saved to database until everything complete
  • If no category explicitly set for a row, pre-fill with the current category

'building' count for Part object

Each Part should return the number of parts currently being built for this Part type

Once a build is 'complete' (and outputs moved to the stock location) this should return zero

Display aggregate stock allocation status on Part page

Each Part should display a total stock aggregate, combining the following numbers:

  • Current actual stock
  • Current number being built (in progress)
  • Current number on order
  • Current number allocated to customers
  • Current number allocated to builds

Add Invoice

Parts shipped out against invoice
Invoice against CustomerOrder

"Did you mean"?

Prevent user from making a new part which is really the same as an old part

  • Look for 'similar named' parts
  • Suggest these parts before part creation
  • Part of Modal Wizard Form?
    • Step 1 - Create part
    • Step 2 - Check for dupes
    • Step 3 - ???
    • Step 4 - PART!

Part should be 'sellable'

If a part can be sold, provide customer pricing information, etc etc

Use this information to pre-fill invoices, etc

Stock adjustments apply to all selected items

e.g. select two parts A / B

Add 10x to A, 20x to B

The items are seemingly updated correctly but both tracking notes get added to each part.

e.g. under A->tracking

  • "Added 10 items"
  • "Added 20 items"

'on_order' count for Part

Each part should return an aggregate of the number of parts currently on order for this part type

'Part' object should have default location

e.g. when a part is built or purchased, present a "where does this part go" box, but pre-fill it with the part's default location.

Most parts will only ever live in a single warehouse so this saves a lot of time.

Allocate StockItem to build

  • Pending builds do NOT allocate parts but parts know that some will be used for pending builds
  • Allocated builds - parts are selected from stock
  • StockItem model needs BUILD field which is where they are marked as allocated
  • When a build is marked as 'built' the allocated stockitems are deleted (or marked as 'belongs_to' the output of the build if the parts are tracked

Improve database queries

Many objects currently have functions which perform inefficient db queries.

e.g.

Part.allocated_build_count

This currently returns a list of allocated builds and then iterates over them, summing the build quantities.

Instead, perform a Sum or Count django annotation query!

There are many such instances where this should be fixed.

Task management integration

  • Tasks have sub-tasks (sub tasks all the way down!)
  • Assigned to multiple users
  • Completion status
  • Completion date, etc

Multi-select in table

Select multiple items and perform bulk actions

Part

  • set category
  • delete part
  • stocktake
  • order parts

Stock

  • move
  • stocktake
  • Add and remove stock
  • Order stock items
  • delete

can not install InvenTree on a web hosting account?

Hi, everybody.
I am trying to install InveTree on my web server.
I have now installed Python version 3.6.5.
However, because I am a beginner, I am looking for a detailed step-by-step guide to installing Invetree, but I have not been able to find it.
I looked for a manual on how to install it here, but it was just a vague description.
So I need step by step instructions.
For example, can not install InvenTree on a web hosting account?
Can you help me a little bit?
Thank you.

Add 'part tree'

  • Tree view of part categories displayed on left-hand side of '/part/' pages
  • Displays current category (when appropriate)
  • Similar tree for stock locations

Build should have a batch code

A BuildOutput should have an associated batch-code. When the build is complete, all the resulting StockItems get a copy of that batch code

Create table editor

  • Edit table 'live'
  • Add new row at the bottom of the table automatically
  • Where appropriate, filter acceptable choices via AJAX

PackingList / BuildList

When shipping or building items, it can be helpful to print out a list of all the items, with a picture, description, quantity.

Then shipping peoples can easily check off each item as they go.

Django Version 2.1 does not support code

  • If I directly run requirments.txt then it installed latest django i.e. In my case it installed 2.1
  • But this code base does not support django 2.1 hence either suppert latest django version or add exact supported version in requirements .

Auth

  • User must log in
  • Groups
  • Different views are available for given user group

StockItem Quarantine / trash / etc

e.g. during builds a certain quantity of parts may be wasted or lost.

Provide a clean way to keep track of this and enter the data back in (e.g. at the end of the build process)?

'get_allocated' function for Part

Inspect the db to get the number of parts allocated (for this part type);

  • Allocated to builds
  • Allocated to customer orders
  • Allocated for any other purpose??

Stock Item forms broken

  • Stocktake
  • Move

Both these forms report a server error: e.g.

MoveStockItemForm has no field named 'serial'

For some reason the serial number is required to be submitted...

NOT NULL constraint failed: stock_stockitem.quantity

When trying to create an stock item, the quantity can not be set as it is marked read only. I may be missing something, but shouldn't that field be able to be set when creating the item since it cannot be set to NULL?

I changed it to so it could be set as a workaround for now. Let me know if I'm overlooking something.

What happens when a part's category is deleted?

If a part category is deleted, all child parts should move to the parent category.

If the category was top-level then the parts are "orphaned" as top-level parts. They can later be moved.

Merge "Supplier" and "Customer"

  • "Company" is sufficient
  • Add 'is_supplier' and 'is_customer' fields
  • Company can be a supplier OR a customer OR both!
  • e.g. need to be able to make a purchase from a company and also make a sale to it

Data importing

  • csv / excel / etc
  • For each import, also provide downloadable 'template' which can be filled in
  • "Guess" at fields if there is a discrepancy

Improve tree-view

On parts pages, only display part category tree.

Don't display "sub-category" list - only the tree!

Display tree-icon to the left of the breadcrumb view. Pressing this toggles the tree view on the left-hand side.

Pass the current 'category' to the tree view code to ensure that the current category is visible when the tree is expanded.

Save tree display state to session.

Auto-increment order references

When creating a new purchase order, set the default value to the "next highest" order

(whatever that is?)

  • Maybe have the ability to set a prefix for different types of orders
  • PO
  • CSO
  • INVOICE

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.