Skip to main content

· 3 min read
Oliver Walters

Integrating barcode scanning into your InvenTree workflow can provide major efficiency improvements. To help streamline inventory management processes, the InvenTree development community has recently introduced some major new barcode features.

Barcode Workflows

To date, InvenTree has provided relatively simple "workflows" for barcode scanning. Scanning a barcode returns information about the database item associated with that barcode - such as a stock item, supplier part, purchase order, etc. This already allows users to perform many stock operations using barcode scanning - and is integrated into the native mobile app.

Recent updates (such as this pull request) have started to introduce more complex barcode workflows, which will allow for context sensitive barcode actions.

ECIA Barcodes for Purchase Orders

Many electronics manufacturers provide data-rich barcodes on items received against incoming purchase orders. The Electronics Component Industry Association (ECIA) has developed a 2D barcode standard which is now implemented by a number of major electronics suppliers.

Purchase orders line items received from these suppliers are often provided with comprehensive barcodes, such as the example below, from Digikey:

Digikey Barcode

This 2D barcode contains the following data fields (and other information):

  • Purchase order reference
  • Manufacturer part number (MPN)
  • Digikey part number
  • Item quantity

These data are sufficient to receive stock items into the InvenTree database with a simple barcode scan. By matching against an open purchase order, and finding the right line item, the item can be marked as received without any manual data entry on the part of the user. A data-driven automated barcode workflow can also reduce data entry errors.

To capitalize on this available data, InvenTree now supports scan-in of items received against purchase orders, from suppliers who support ECIA barcodes. A new barcode scan API endpoint is provided which handles all of the back-end operations.

Currently, the following suppliers are supported:

  • Digikey
  • Mouser
  • LCSC
  • TME

This functionality will be available in the upcoming 0.13.0 stable release.

App Integration

The new purchase order barcode functionality is supported by the InvenTree mobile app:

App barcode support

Web Integration

We are working on integration into the web interface as part of our move to react

Further Workflows

Other advanced barcode workflows are also planned for future development, particularly around build orders and sales orders.

Note that barcodes functionality can also be extended by plugins as required, for custom integrations or features.

App Barcode Scanner Support

To further improve barcode support, the mobile app has been updated to work with external barcode scanners (in addition to providing barcode scanning using the internal camera). The new scanner support provides keyboard wedge scanning, which means that it can interface with any barcode scanners which act as virtual keyboards.

In addition to working with external bluetooth scanners, this means that the app is now supported on barcode scanners which natively run android:

Barcode scanner

Any scanner which supports wedge or keyboard mode should now be able to integrate seamlessly with the InvenTree app.

Acknowledgements

We would particularly like to acknowledge the superb contributions of Bobbe who was instrumental in developing these new barcode features and mobile app integration. The InvenTree community continues to help us develop the software into a more functional and feature-packed product!

· 2 min read
Oliver Walters

The InvenTree development team is proud to announce the release of version 0.12.8, which provides fixes for a number of bugs reported by our community of users.

Currency Exchange

One key issue addressed in this release is a fix for fetching exchange rate information from the internet.

To date, InvenTree has made use of the exchangerate.host service for updating currency exchange rate data. This has (until now) been provided as a free service which did not require authentication.

However recent changes to the exchangerate backend have broken our exchange rate implementation, and required an immediate fix.

frankfurter.app

For now, the quick approach to get everyone up and running again is to migrate to using the frankfurter.app API. This provides a near-identical API, without needing an API key or paid subscription.

Future Improvements

Future work on supporting exchange rates will involve supporting different backend APIs, including the ability for users to provide their own API keys. We will also implement the ability for custom plugins to provide exchange rate data - allowing users to define their own exchange rate interface if required.

Other Improvements

For a full description of other issues addressed in this release, refer to the release notes

Maintaining and continuously improving a software project requires time, effort, and resources. We are committed to patching critical bugs in a timely manner, to ensure that everyone who is using InvenTree has the best possible experience with our software.

If you would like to financially support the project, please refer to the contribution guide.

· 3 min read
Oliver Walters

In the world of electronics design and PCB (Printed Circuit Board) development, KiCad has been a go-to tool for engineers and hobbyists alike. KiCad is a very popular and capable tool, and has continually evolved to meet the changing needs of its users.

Ever since InvenTree was first shamlessly cross-promoted on the KiCad forums, I have been searching for a clean way to connect KiCad and InvenTree together. This has been a popular topic of discussion with other InvenTree users too!

InvenTree contains all of my part definition data and inventory management information, such as part parameters, supplier data, etc. If only there was a simply way to get all of that information directly out of InvenTree and into KiCad.

Well now, with great excitement, there is! InvenTree data can now be used as a first-class symbol library - with full support of all of InvenTree's internal data!

HTTP Library Support

In September 2023, HTTP Libary Support was added to the KiCad application.

This feature allows KiCad library data to be retrieved from an external API endpoint, rather than a library file on the local filesystem. This is a groundbreaking change which allows us to leverage InvenTree's existing capabilities to provide a fully-featured integration between the two software packages.

InvenTree Plugin

The same author who implemented the HTTP library support in KiCad has also released a plugin for InvenTree which provides an API wrapper for the InvenTree database that conforms to the KiCad HTTP library standard.

What does this mean? Simply put, it means that you can now use your InvenTree database as a native KiCad library, and pull your InvenTree data directly in to your KiCad schematic.

Configuration File

Once the plugin is installed, a simple configuration file on the local computer is all that is required to connect to the InvenTree database. All that is required is the URL to the remote server (with the correct plugin extension) and an API token for authentication:

{
"meta": {
"version": 1.0
},
"name": "InvenTree",
"description": "InvenTree Library",
"source": {
"type": "REST_API",
"api_version": "v1",
"root_url": "http://my.inventree.server/plugin/kicad-library-plugin",
"token": "usertokendatastring"
}
}

Categories as Libraries

InvenTree categories can be used as separate libraries in the KiCad application. The InvenTree plugin allows the user to select which part categories are exposed to KiCad.

Parameters as Fields

Part parameters are exposed to the KiCad symbol as fields. This means that any extra part information (stored as part parameters in InvenTree) is available to the KiCad symbols.

Default Values

Where certain KiCad values are not defined for a particular part, each library category can optionally specify attributes such as Default Symbol or Default Footprint. This allows a category to be defined where all parts may share a common symbol and/or footprint within KiCad.

Further Reading

Check out the inventree-kicad-plugin page on GitHub for further details, including installation instructions!

· 6 min read
Oliver Walters

The InvenTree development team is thrilled to share some exciting news about the ongoing efforts to significantly overhaul our user interface. To provide a major facelift to InvenTree, we are migrating our entire user interface to the React framework.

A Brief History

The InvenTree software project started as a pure server-side app, with the pages rendered on the server using html template files, via the Django template engine. As the amount of data handled by InvenTree increased, this approach very quickly became untenable, with page loading times slowing noticeably.

A significant milestone came with the introduction of the REST API (we use the Django Rest Framework). Now, the user interface could be separated from the data, which allowed some great improvements to the user experience. Now, content could be loaded dynamically via the API, and rendered on the client side using javascript.

While various improvements have been made, and new features implemented, this has been how the InvenTree user interface has functioned for a number of years. Functionality (and code) has grown somewhat organically, and without much in the way of an overarching design strategy.

A lot of the user interface is still dynamically rendered on the server, with the "gaps" filled in by the client (via API calls). This approach has some drawbacks:

  • Inconsistent: There is no real guiding strategy as to which parts are rendered by the server or the client
  • Inefficient: Rendering UI elements on the server via templates is very slow, and we cannot make use of modern design patterns
  • Inscrutable: With a mix of server-side html and client-side javascript, it is very difficult to work out how a certain function works, and how to implement changes.

So, it's time for a clean break! Moving to a modern UI framework is a daunting task, but with some very clear benefits and provides a path into the future.

Design Goals

The primary design goal for our refactor is to render the entire user interface dynamically, using React. To achieve this, we have to implement the following:

  • Update the API
  • Reimplement the UI
  • Test everything

Update API

As it stands, the API currently provides the majority of required data to various interfaces, including the web interface, mobile app, and any third party integrations. However there are some data which are not currently accessible via the API, and rendered on-demand by the server. So, we need to ensure that all displayed data are available via API endpoints.

Reimplement UI

Every single page / view needs to be rewritten in React. While this is a lot of work, it will be significantly less work than it took to originally write it all in javascript. We can leverage the reusable components and design patterns provided by React to significantly reduce code duplication. Additionally, there are already a lot of "common" interface patterns (such as data tabulation) used in InvenTree which should cut down the required work.

Test Everything

A big advantage of moving to a modern UI framework is the ability to enhance our unit testing. Currently, while the server code has good code coverage, the front-end code has very little. Our move to React will include a focus on test driven development, to ensure that our front-end is as bug free as is reasonably possible.

Advantages

There are a number of significant advantages that this refactor will afford:

  • User Experience: A major driver here is a better user experience. The interface will be more "user friendly", pages will load more smoothly, and the interface flow (should) feel more intuitive
  • Efficiency Gains: As the django server no longer has to render front-end code, it should me much more responsive for API requests
  • Improved API: As a necessary requirement, our API will be enhanced. Data availability and response times will be improved.
  • Reduce Served Load: By only loading data when necessary, we will drastically reduce the load on the server
  • Code Separation: Good separation of code between the server (API) and front-end (UI) will result in cleaner code
  • Better for Developers: By moving to a well-known modern framework, we will make it much easier for other developers to contribute to our codebase.
  • Future Development: We will have a clear path forward for development of modern, responsive interface features which are not possible with our current toolchain.
  • Easier Integrations: Developers can implement responsive integrations with external services or plugins

Release Timeline

Currently, the "master" branch of InvenTree ships with the "legacy" interface, and the new interface (which we have codenamed "platform"). We will be shipping both interfaces side-by-side while we work on the development.

When the new interface is ready to be released, we will have a clean break, with the old interface removed entirely.

Our aim is to have the entire user interface rewritten by the end of the year. Ideally, with developer assistance we could have it done sooner!

You can track the progress of these tasks here - https://github.com/inventree/InvenTree/issues/5212

Distributing the Interface

The intent for distributing the UI is to bundle a set of compiled javascript files with the installer. This means that the install / upgrade process is seamless for users:

  • End users will not need to install node / npm / yarn / etc on their system
  • UI files are compiled and minified, to reduce download size

Developers will need to install the required development packages to build the user interface on their machine. This is managed by our requirements files.

Interface Preview

The new interface is currently shipping in the "master" branch of InvenTree, and can be accessed at the /platform/ URL. This is very much a work in progress, but is useful for users or developers who wish to see the progress of the overhaul, or (even better) help us develop it.

You can see the latest version on the demo site, at https://demo.inventree.org/platform/

Development Assistance

One major goal of the refactor is to attract more developers by using a well-established modern framework. If you would like to contribute to the new interface, please raise a PR over on our GitHub page.

· 7 min read
Oliver Walters

Once again, it's time to announce a new stable release! The InvenTree development team, aided by a number of new contributors, are pleased to announce a new stable release version - 0.12.0.

Deploying InvenTree

InvenTree deployment is supported with multiple approaches. Refer to our deployment guide for more information!

New Features

In today's fast-paced business environment, effective inventory management plays a vital role in the success of any organization. Keeping track of stock, orders, and projects is essential for efficient operations and customer satisfaction. To address the evolving needs of businesses, we are excited to announce the release of InvenTree, our advanced inventory management software. This latest version of InvenTree introduces several key features and enhancements, focusing on improving business functionality and reliability. Let's explore the major highlights of this release:

Units of Measurement

InvenTree now supports physical units for parts, allowing you to define and track different units of measurement for your inventory items. With seamless conversion between compatible types, you can manage your stock in a way that aligns with your specific requirements and industry standards.

Physical unit management is provided via the pint library. Units of measure can be defined for internal parts, and for parts supplied by external companies. In the case of supplier parts, different units of measure can be specified, and converted to internal units on point of purchase.

Additionally, part parameters can now also specify real world units!

For more information on this new feature, refer to the documentation:

Project Codes

To streamline project management and order tracking, InvenTree now offers configurable project codes. These codes can be created and assigned to orders, providing a convenient way to organize and categorize your inventory based on specific projects. This enhancement enhances overall visibility and enables efficient project-based inventory management.

Read more about project code support in the documentation

Parameter Types

Part parameters in InvenTree now support dynamic typing, empowering you to define and validate various parameter types. With this flexibility, you can customize and validate part parameters to suit your specific needs. Furthermore, the addition of plugin support ensures seamless integration of third-party validation mechanisms, enhancing the reliability of your inventory data.

More information about part parameters is available in the documentation.

Parameter Sorting

To enhance the usability and efficiency of InvenTree's part parameters, the latest release introduces the ability to sort parameters by value. This functionality enables you to quickly identify and analyze specific parameter values across your inventory. Moreover, the conversion between real unit values of compatible types allows for seamless comparison and analysis. By easily sorting parts based on parameter values, you gain deeper insights into your inventory, facilitating better decision-making and process optimization.

Report Plugins

InvenTree introduces a new plugin mixin class that allows for custom context variables to be injected into reports. This enhancement provides extensive customization options when generating reports, enabling you to include additional information relevant to your business processes. With improved report functionality, you can present inventory data in a more comprehensive and meaningful way.

Build Orders Consume Stock

The build order interface in InvenTree has received a major overhaul, resulting in a significantly improved API interface. This update simplifies the process of managing build orders and ensures a smoother workflow. Additionally, build orders now track stock consumption, allowing for lifecycle tracking of consumed stock. This feature enables better monitoring of stock usage and enhances traceability.

Scrap Build Order Outputs

InvenTree's latest release introduces a valuable feature that allows users to scrap partially completed or failed build outputs while retaining traceability. In real-world manufacturing scenarios, it is common for builds to encounter challenges or errors, resulting in the need to discard certain outputs. With the new scrap build outputs functionality, you can easily identify and remove faulty or incomplete build outputs from your inventory. This feature ensures accurate stock tracking and maintains a clear audit trail, improving reliability and efficiency in your manufacturing processes.

Image Uploads

To enrich documentation and enhance visual representation, InvenTree now supports image uploads. Images can be uploaded and seamlessly integrated into markdown notes fields, providing a more comprehensive overview of inventory items. With the ability to include images, you can easily document and visualize important aspects of your inventory, increasing reliability and improving communication.

Address Management

InvenTree now offers increased support for address management with a more complex address database model. This enhancement enables businesses to manage addresses more effectively, accommodating various scenarios such as multiple shipping locations, customer addresses, and supplier information. With improved address management, you can maintain accurate records and ensure smooth logistics operations.

SVG Support

With the growing importance of visual data representation, InvenTree now supports the embedding of SVG images into generated reports. By incorporating SVG images into your reports, you can create visually appealing and informative documentation, making it easier for stakeholders to understand and engage with your inventory data.

Read more about SVG support in generated reports in the documentation.

Update to OpenAPI

InvenTree's API documentation has been updated to utilize OpenAPI, resulting in improved readability and enhanced functionality. The transition to OpenAPI brings a standardized and user-friendly interface for developers, enabling easier integration with other systems and applications. This update enhances the reliability and compatibility of InvenTree within your existing software ecosystem.

Bug Fixes

As always, we have worked hard to address any identified bugs or inconsistencies in system performance. These bug fixes and usability improvements represent our commitment to delivering a robust, reliable, and user-friendly inventory management solution. We value user feedback and continuously strive to enhance the software based on user needs and industry best practices. With each iteration, InvenTree becomes more refined, reliable, and user-centric, empowering businesses to efficiently manage their inventory and drive success.

And More!

With over 175 merged requests, this new stable release represents a major step forward in the InvenTree project. Please refer to the release notes for a full listing of new features, bug fixes, and other updates.

Support for InvenTree

We believe in the power of open-source software and its ability to drive innovation and empower businesses worldwide. InvenTree has always been developed with a community-driven approach, with contributors and users collaborating to make it a robust and reliable inventory management solution. To continue providing high-quality software and ensure its long-term sustainability, we rely on the support of the community.

Maintaining and continuously improving a software project requires time, effort, and resources. We are committed to dedicating our expertise and energy to enhancing InvenTree, but we also need your support to sustain its development at the highest standards. By contributing financially to the project, you can play a crucial role in ensuring that InvenTree remains a cutting-edge, reliable, and feature-rich inventory management solution.

Your financial support will help us in several ways:

Continued Development

Funds raised through your contributions will enable us to allocate more resources to the ongoing development of InvenTree. This means that we can invest in additional development hours, hire talented developers, and accelerate the implementation of new features, bug fixes, and usability improvements.

Bug Fixing and Quality Assurance

With your financial support, we can dedicate more attention to addressing reported bugs promptly. By investing in rigorous quality assurance processes, we can ensure that InvenTree operates smoothly, minimizing disruptions and maximizing reliability for users like you.

Documentation and User Support

High-quality documentation and responsive user support are vital components of a successful software project. Your contributions will enable us to allocate resources to improving documentation, creating helpful tutorials, and providing timely assistance to users, enhancing their experience and understanding of InvenTree.

Infrastructure and Hosting Costs

Maintaining reliable infrastructure and hosting services is essential for ensuring the ongoing development and maintenance of the InvenTree project. Your support will help us cover the various ongoing costs associated with hosting.

To support InvenTree financially, please view the contribution page or contact our team for more information on how you can contribute. We extend our heartfelt gratitude to the entire InvenTree community for your ongoing support, contributions, and belief in the power of open-source software. Your involvement is invaluable, and we look forward to building a brighter future for InvenTree together.

· 4 min read
Oliver Walters

The InvenTree development team is proud to announce the 0.11.0 stable release!

New Features

We are thrilled to announce the latest stable release of Inventree, version 0.11.0, packed with exciting new features and improvements! This release has been made possible thanks to the hard work and dedication of our incredible community of contributors. With a wide range of new features, InvenTree 0.11.0 is a significant step forward in empowering businesses to streamline their inventory processes and optimize their workflows. We can't wait for you to try it out!

Return Orders

The addition of Return Orders is a significant new feature, which allows users to easily process and manage returned items, whether they are due to customer refunds or defective products. With the ability to track the status of return orders and the associated inventory movements, businesses can better manage their inventory levels, reduce waste, and improve their customer service.

Stocktake Reports

Another great new feature in the latest release of InvenTree is the ability to generate detailed stocktake reports. This feature enables businesses to conduct accurate and efficient inventory audits by providing periodic information on stock levels, locations, and movements. With this feature, businesses can view historical inventory levels, providing data for improved decision-making. The stocktake report feature also allows for customizations such as filtering by location, category, or supplier, providing a tailored view of inventory levels to meet specific business needs. Overall, the ability to generate stocktake reports is a significant enhancement to InvenTree, enabling businesses to take control of their inventory management and streamline their operations.

Improved Barcode Support

The latest release provides improved barcode support, with the ability to generate barcodes for all order types, in addition to assigning custom barcodes.

Report Templates

InvenTree's latest release includes improved report template functionality with better currency rendering support, enabling businesses to create professional and accurate reports. This feature allows for more detailed and customizable reports, including the ability to display currency symbols and automatically convert currency values to the appropriate format based on the user's settings, saving time and effort.

Refer to the reporting documenation for further details.

Search Results

Another feature of this release is the refactor and extension of the API search endpoint, adding new functionality such as regex and whole word search capabilities. With these improvements, users can conduct more powerful searches, returning more precise results and reducing the time and effort required to find the information they need.

Bug Fixes

Multiple bug fixes (ranging from minor to significant) have been implemented. Many of these bugs have been reported (and even fixed) by our users. Your feedback really helps improve the software and make it more useful for everyone!

Translation Updates

Our users have been working very hard to improve the translation support for the InvenTree software. The translation efforts are progressing really, well - check out the InvenTree project on crowdin. If you would like to see further work on the translation, or looking to see InvenTree translated into a new language, please consider contributing your time as a translator!

Release Notes

As always, the full set of release notes and changelogs is available on our GitHub Page.

Python Bindings

The InvenTree python bindings have also been updated - check out the release notes.

Support InvenTree

The InvenTree development team is committed to providing users with the best possible open source inventory management software. However, we rely on the support of our community to continue developing new features and improving our platform. If you find InvenTree valuable and want to support our ongoing development efforts, please consider making a financial contribution to help us continue developing the InvenTree software.

· One min read
Oliver Walters

The InvenTree development team is pleased to announce the 0.10.1 bugfix release.

This release fixes a small number of critical bugs, backported from the master branch. The complete release notes can be found on Github.

· 2 min read
Oliver Walters

The InvenTree development team is proud to announce the 0.10.0 stable release!

New Features

As always, thanks to the efforts of our development team and larger community, this release is packed full of new features! Some of these new features are highlighted below - refer to the release notes for more information!

SSO Improvements

A lot of work has gone into improving Single Sign On (SSO) integration. We have made some changes to make the SSO process smoother, and improved the user experience. Additionally (and importantly) the documentation has been significantly improved!

Currency Conversion

In a major improvement for currency support, conversion between different currencies is now performed "client side". This means that data tables which contain money values with different currencies can now be added together - and in a computationally efficient manner. Currency exchange rate data is now made available via the API - paving the way for future feature development in this area.

Pricing Features

A number of smaller improvements have been made to the pricing architecture.

Build Order Priority

Build orders can now be arranged by priority - a simple numerical value which allows certain build orders to be marked as more "important" than others.

Translation

As always, thanks must be given to our translation team who help provide InvenTree in multiple languages. This release cycle, we have added support for Slovenian (although this does need some attention, at only 6% translated). Translation is an ongoing process, and requires the support of the InvenTree community!

Bug Fixes

In addition to the new features listed above, this release also provides fixes for a number of outstanding bugs. Many of these have been reported by our users - thanks for your feedback and help to make InvenTree better for everyone!

Release Notes

As always, the full set of release notes and changelogs is available on our GitHub Page.

Mobile App

Corresponding with the main software release, the mobile app has a new release also.

Python Bindings

The InvenTree python bindings have also been updated - check out the release notes.

· 6 min read
Matthias Mair

Recently a new feature was launched: A central plugin list.

TLDR

The Plugin List is managed by the InvenTree org and is open for submissions. It is a simple list on the website for a start. Being on the list is not an endorsement or guarantee of service by the core team.

Why plugins and a plugin list?

InvenTree is a powerful tool but the use cases very widely. Many things can be done with it, but too many special features also create confusion for the average hobbyist user. That is why we created the plugin system. It allows users to extend InvenTree with custom functionality without having to modify or ding into core code. It is a great way to add features that are not needed by everyone but are still useful for a subset of users. It can also be used to customize InvenTree to fit existing patterns (eg. part numbering scheme or order references).

One of my main goals was to enable complex changes without the need of forking the code. This way users can still benefit from upstream changes and bugfixes without having to merge them manually. As a positive side effect, it should also reduce requests for fixes of very old versions and enable users to always use the latest version of InvenTree as we try to keep the plugin (python) APIs stable.

The plugin system has been in core for a while now and from my own usage, conversations with users and requests on GitHub I know that small plugin collections have started to form.
I think most plugins are very tailored to the businesses/users that deploy them. I have seen some for shipping, integrating ERP systems, connecting machines or generating files for orders. Therefore, they are not fit for public consumption.
There are, however, a number of public repos on GitHub and GitLab with integrations for printers, adding functionality that we are not willing/able to add to core or do other cool things.

The plugin list is a way to share the cool, public plugins you made with the community. I also hope that it enables new users to onboard faster.

How it works

As mentioned before, we use Jekyll for this website. This means that the list consists of static pages that are generated from YAML/Markdown files. The output is hosted by GitHub pages (for free ;-)) and can be previewed on PRs thanks to the Netlify app integration.

A file contains a number of standardized fields in the header and markup text for the plugin page that uses Markdown (just like GitHub README pages). That information is used to generate:

  • the individual plugin pages
  • plugin cards on the main page (showing the newest entries)
  • a list of all available plugins
  • overview pages for tags and categories

Adding a new entry is as simple as forking, creating a new file in the plugins folder and opening a PR. More on that is below.

There are also entries and pages for authors/publishers. Currently, we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author. That page also contains all blog posts written by the author and a few links.

Disclaimer

While the list is moderated, the core team does not endorse or guarantee any service for the plugins listed. If you have any questions, please contact the plugin author directly.

Submitting a plugin

If you want to add your plugin to the list, please follow the instructions in the README of the repo for the website. The list is managed by members of the InvenTree org, so it might take a few days to process your request. If you are submitting a plugin for the first time, there is a good chance you do not have a publisher/author entry either - please add that as well. The steps are listed in the README.

Please make sure to update your listing if your plugin is no longer maintained or if anything important changes. For now, there is no automated process to update listings from their repos.

Future ideas

Several ideas have been brought forward regarding possible improvements to the plugin list since I started public work on it (the original idea is from Feb/Mar 2022, like the rest of the website). If you have any ideas, please let us know in the discussions on GitHub or in an issue. And if you want to help, please feel free to open a PR for anything listed below.

Inclusion in InvenTree: Users of InvenTree should be able to browse and install plugins directly from within the web app. This would require a way to install plugins and probably a way to update them too. A good example would be Octoprint's plugin manager. The main work would be to create a nice interface, the API endpoints (for installing and activating/deactivation) are already there.

Regarding browsing the list on the site:

  • A more detailed list with screenshots, short descriptions and standardised sections in the page itself
  • A way to rate plugins
  • A way to show how often a plugin is used/downloaded (would probably need 4150)
  • A better way to search for plugins (by name, description, author, tags, etc.) - we deploy statically so that might be tricky
  • A way to filter plugins by InvenTree version
  • A way to filter plugins by language (if they are translated)
  • A way to filter plugins by license (there are so many licenses that I did not include it in the first version) Quality of life:
  • A more automated process to update the list from the plugin repos
  • Improve the PyPI scraper to also work with GitHub and GitLab repos
  • A way to automatically test plugins for compatibility with InvenTree and show that on the listing
  • RSS feed for new plugins

Moon-shot idea: A privacy-friendly way to register your instance once and then have a button on the website that directly installs the plugin. That would also enable some cool other stuff with browser integrations, fast pairing for the app (very much requested by uni labs) and more.

· 4 min read
Oliver Walters

2022 was a huge year for the InvenTree project.

Release Milestones

This was a very active year for the project, especially in terms of core software development. A huge array of new features have been implemented, and significant performance improvements have been made across the board.

We extend our sincere thanks to the many contributors who have helped make this a reality!

0.6.0

At the start of the year, we released version 0.6.0 of InvenTree. This release provided a slew of significant new features

0.7.0

In May, version 0.7.0 was released, bringing major improvements to the plugin system, among other new features and fixes.

0.8.0

In August the InvenTree team released version 0.8.0.

0.9.0

In December, we released 0.9.0 with 248 merged pull requests from multiple contributors. This release represented a huge number of new features and improvements!

New Website

Our new website (inventree.org) is now up and running! Thanks to @matmair in particular for bringing this to life.

Translations

Translations for the InevnTree project continue to grow, thanks to our vibrant community of users. Thanks to the crowdin project which makes this possible.

Users

And finally, thanks to our users! In 2022 we went from 500 stars on GitHub, to over 2,000! While not necessarily the most accurate metric for tracking how many people are actually using InvenTree, this is very exciting for us.

The GitHub stargazers data gives us a picture of where InvenTree is being used - we've gone global!

Star Map

Location data were obtained from GitHub stars metadata - InvenTree software does not track user location!

Upcoming in 2023

What are we working on in 2023?

There is a lot on the horizon - and with over 120 outstanding issues we need to be selective in what we tackle first.

UI Refactor

One of the larger projects is a complete front-end overhaul - issue 3901. We are migrating away from the current clutter of templated HTML and JS files, which are pre-rendered by the server, and moving to an API-oriented React UI.

This change will have some immediate major benefits:

  • Improved page load speed and general usability
  • Significant reduction in duplicated code
  • Data are loaded on demand via the API
  • Ability to change front-end elements without touching back-end code
  • Unit testing for front-end code

This will be a pretty significant undertaking, some of the old front-end code has been with us right from the beginning of the project! Please be patient.

Over the coming months we will be shipping the React front-end in parallel with the existing UI code, to allow side-by-side testing while we squash bugs.

Data Import Overhaul

The current workflows for importing data into an InvenTree database are pretty messy. There are three separate methods of ingesting bulk records, none of which we are really happy with.

A complete overhaul of the data import framework is necessary. We will be developing a stack which allows generic, robust, repeatable data importing for various tables.

You can follow the progress here.

Plugins

The InvenTree plugin infrastructure is now very mature, with many custom plugins developed for (and by) our users.

Documentation

As always, the documentation lags the product. While we do try to keep our documentation as fresh as possible, we are always on the lookout for users who can contribute to the project by helping us with documentation!

Check out the documentation project if you are able to contribute.

Sponsorship

The InvenTree project has grown substantially over the last year. While we now have an active user community, we still only have a very small core development team, trying to keep on top of all the great ideas you have.

If you have found InvenTree to be a useful piece of software, especially if you are using it for your business, please consider sponsoring the project. Sponsorship allows the devs to provide more of their (quite precious) time to the project, which benefits everyone.

You can provide a one-off or monthly sponsorship, or sponsor a specific feature or plugin!