I've got a fair bit of free time coming up, and I thought I'd code an inventory management desktop application to keep my skills sharp. I know there are existing offerings out there (like PartKeepr, Bomist and PartsBox), but I've found them all to be either expensive, ugly or lacking in features that I need. Plus it's been ages since I've coded anything similar so it should be fun. Once I'm happy with it I'll make it available for anyone to use.
It's not going to be super complex, so no CRM, ERP or online integration type stuff. It won't require a web server (which adds flexibility, sure, but I just don't need that) or SQL installation.
Basically, a straightforward standalone portable application one can run on a workbench laptop or PC. One could always stash it in a DropBox or Google Drive folder if you need access to it from multiple locations.
I know what I need from it, but if anyone has specific requests for functionality I'd be happy to add it (within reason 😀).
So: what would YOU like to see in such a program?
It's not going to be super complex, so no CRM, ERP or online integration type stuff. It won't require a web server (which adds flexibility, sure, but I just don't need that) or SQL installation.
Basically, a straightforward standalone portable application one can run on a workbench laptop or PC. One could always stash it in a DropBox or Google Drive folder if you need access to it from multiple locations.
I know what I need from it, but if anyone has specific requests for functionality I'd be happy to add it (within reason 😀).
So: what would YOU like to see in such a program?
Hi there, DontHertzMe
Nice little project
to start it off, off the top of my head for a very simple user
PartComponent type/category, detailed description and pointers to associated attributes like data sheets if applicable
Source where is it, e.g. where did I put it/where can I get it
but start small and make the model extensible and indexable
Mike
Nice little project
to start it off, off the top of my head for a very simple user
PartComponent type/category, detailed description and pointers to associated attributes like data sheets if applicable
Source where is it, e.g. where did I put it/where can I get it
but start small and make the model extensible and indexable
Mike
Small count (home user) or commercial application?
Definitely small count. There is good software for commercial applications out there. This is aimed squarely at the hobbyist / maker space. But having said that, there are varying levels of hobbyist 😀. If I look at pictures of my work bench 8 years ago compared to now... it's currently a work room. So I'd like to cater to both the "How many 1k resistors do I have left?" and "Which brands of low ESR electrolytic capacitors do I have with a lead pitch of 3.5mm and a diameter of 8mm that I've tagged as signal path parts which are rated for 25V, and how much do they cost?" type folks.
Hi there, DontHertzMe
but start small and make the model extensible and indexable
That's the plan! I imagine I'll be adding to it continuously as new usage scenarios emerge
barcode scanning off the bags that we get the components in would be of real interest.
That is on the wishlist. Doing it with a dedicated barcode scanner is straightforward, but I'm hoping people will be able to use a cheap webcam instead, which will also allow reading of QR codes. This will be a later addition though, I need to get the basics right first.
I would go with the following categories:
Description
Manufacturer
Manufacturer's part number
Supplier
Supplier's ordering code
Ref Supplier
Ref Supplier's ordering code
Price
Location (where it is stored)
Ref Supplier should be a major supplier like Digikey. That way you have a high assurance of finding the same part again.
Keeping this info will enable you to easily scale your DIY project to a commercial one and it will be also globally useable by other (DIY) parties.
You can also add a type field to indicate attributes such as leaded/SMD and passive/semiconductor and/or resistor/capacitor/inductor.
If you go commercial you might also want a secondary source for your parts, so consider making allowance for multiple Suppliers.
You can also add a short description that you can use for labelling your drawers/containers.
Nice project!
Description
Manufacturer
Manufacturer's part number
Supplier
Supplier's ordering code
Ref Supplier
Ref Supplier's ordering code
Price
Location (where it is stored)
Ref Supplier should be a major supplier like Digikey. That way you have a high assurance of finding the same part again.
Keeping this info will enable you to easily scale your DIY project to a commercial one and it will be also globally useable by other (DIY) parties.
You can also add a type field to indicate attributes such as leaded/SMD and passive/semiconductor and/or resistor/capacitor/inductor.
If you go commercial you might also want a secondary source for your parts, so consider making allowance for multiple Suppliers.
You can also add a short description that you can use for labelling your drawers/containers.
Nice project!
Last edited:
Barcode scanning: keyboard wedges are cheap, and can be selected to read 1D barcodes, DataMatrix, QR codes, etc. However, they don't give you metadata like what kind of barcode it was, etc. I also have running, operable Python code that uses an attached webcam to read one or more 1D barcodes, QR, or DataMatrix codes. It will perform rudimentary determination of distributor and use their API to retrieve additional information about that part, based in part on the additional metadata available.
2D DataMatrix codes with field IDs following ECIA conventions are used by Digi-Key, Mouser, Newark, and probably many others. These codes contain multiple fields of data: customer PN, quantity, datecode, etc. Notably, the distributor from whom the package was purchased is NOT typically one of the fields presented. One must either infer or else have a person read the label.
With an array of 1D codes, it's difficult to know which code contains which field (MPN? SKU? Who knows?) without someone reading it. Some 1D barcode arrays use the same ECIA standard field prefixes to denote content type, in which case the data contained can be mapped to a specific parameter. But did you get all of the barcodes visible to successfully decode? Hard to say without a person verifying == tedious.
Having, like many of you, hundreds of such barcode-marked bags from various distributors that I would like to manage and track, I've been working on understanding the data that's there and how to extract it quickly and robustly. I've been working with a Django-based inventory system under development called Inventree, and for my purposes the ability to extract useful information from those bag barcodes is the last main feature required - and it's not straightforward. Once I've captured the data, I intend to use a cheap Brother thermal printer to attach QR codes specific to Inventree for unambiguous identification and tracking of the individual bags.
If you want to use a wedge to scan individual barcodes into text entry fields, simple and straightforward if a bit tedious. If you want to use a webcam to gather a 2D code or cluster of 1D codes, you can do a lot more to automate the extraction but how to parse the results is a much bigger challenge.
I have a fair body of background material and such on the topic; happy to discuss further if anyone finds benefit.
2D DataMatrix codes with field IDs following ECIA conventions are used by Digi-Key, Mouser, Newark, and probably many others. These codes contain multiple fields of data: customer PN, quantity, datecode, etc. Notably, the distributor from whom the package was purchased is NOT typically one of the fields presented. One must either infer or else have a person read the label.
With an array of 1D codes, it's difficult to know which code contains which field (MPN? SKU? Who knows?) without someone reading it. Some 1D barcode arrays use the same ECIA standard field prefixes to denote content type, in which case the data contained can be mapped to a specific parameter. But did you get all of the barcodes visible to successfully decode? Hard to say without a person verifying == tedious.
Having, like many of you, hundreds of such barcode-marked bags from various distributors that I would like to manage and track, I've been working on understanding the data that's there and how to extract it quickly and robustly. I've been working with a Django-based inventory system under development called Inventree, and for my purposes the ability to extract useful information from those bag barcodes is the last main feature required - and it's not straightforward. Once I've captured the data, I intend to use a cheap Brother thermal printer to attach QR codes specific to Inventree for unambiguous identification and tracking of the individual bags.
If you want to use a wedge to scan individual barcodes into text entry fields, simple and straightforward if a bit tedious. If you want to use a webcam to gather a 2D code or cluster of 1D codes, you can do a lot more to automate the extraction but how to parse the results is a much bigger challenge.
I have a fair body of background material and such on the topic; happy to discuss further if anyone finds benefit.
Database usage is all about entry and extraction of data and keeping it maintained. Not all parts will have bags nor a history of where they came from, so plan on having to manually enter some data. And removing/altering that data when the part is placed in a board or chassis. Deciding on what data to collect is easy (or maybe not!). But using the database and wanting to keep using the database is crucial. Make data entry as easy as possible. Things such as value lists would help. A list tied to a field that has numerous common values such as film caps or resistors. Click on a value in the list to populate a field with that value.
Just one man's opinion...
When I was running my shop, I had many thousands of parts, and whenever I used one, I'd look in the drawer. If I was running low on 1k resistors, I noted it on my shopping list.
I bought some book keeping software that boasted inventory control and stuff. I found that it meant I had to go back and enter every part from my written invoices, extra labor. After a month or so, I quit that and went back to my own ways.
Just keep in mind that every part you use will require an entry into the system.
When I was running my shop, I had many thousands of parts, and whenever I used one, I'd look in the drawer. If I was running low on 1k resistors, I noted it on my shopping list.
I bought some book keeping software that boasted inventory control and stuff. I found that it meant I had to go back and enter every part from my written invoices, extra labor. After a month or so, I quit that and went back to my own ways.
Just keep in mind that every part you use will require an entry into the system.
^^^ Agreed. You can have bulk issue parts that cost next to nothing, which you can just top up as it gets empty. It's only worth tracking the more expensive and/or scarce parts.
Hello everybody
It is not new that nowadays it is necessary to have a reasonable stock of components, both for our experiments and for eventual repairs.
Losing Control - As my inventory grew, I lost control. Buying components already in stock and wasting time in localization were the two factors that bothered me the most.
Using Microsoft Access – As I have a good experience with Microsoft Access VBA programming, I decided to create a small application for inventory control and thus solve my demand.
Sharing the app – I will share this little app with you. It will be open source.
Some images - I'll start by showing some images of the application, so you can analyze whether it will meet your demand.
Anyone interested can follow the topic on the eevblog forum:
A small (open source) Inventory Control application using Ms Access. - Page 1
It is not new that nowadays it is necessary to have a reasonable stock of components, both for our experiments and for eventual repairs.
Losing Control - As my inventory grew, I lost control. Buying components already in stock and wasting time in localization were the two factors that bothered me the most.
Using Microsoft Access – As I have a good experience with Microsoft Access VBA programming, I decided to create a small application for inventory control and thus solve my demand.
Sharing the app – I will share this little app with you. It will be open source.
Some images - I'll start by showing some images of the application, so you can analyze whether it will meet your demand.
Anyone interested can follow the topic on the eevblog forum:
A small (open source) Inventory Control application using Ms Access. - Page 1
Hi
I'm finally releasing the inventory control project, so you can start your inventory control.
When unzipping, just run the SysInventory_v_1.accdb file to load the application. Create a shortcut of this file on your desktop, for easy access.
A small (open source) Inventory Control application using Ms Access. - Page 2
I'm finally releasing the inventory control project, so you can start your inventory control.
When unzipping, just run the SysInventory_v_1.accdb file to load the application. Create a shortcut of this file on your desktop, for easy access.
A small (open source) Inventory Control application using Ms Access. - Page 2
Attachments
Hi
I am available to answer any questions. I also accept suggestions for possible improvements. If you wish, you can communicate in private.
I am available to answer any questions. I also accept suggestions for possible improvements. If you wish, you can communicate in private.
- Home
- Design & Build
- Software Tools
- Requirements and feature requests for a parts inventory management system