This will be the second version of the Electronic Component Inventory System. I made the first version using Visual Studio in C# with Windows Forms, and I decided it would be better to just use Python so I can try to achieve some sort of cross-platformability. Plus the whole nightmare with trying to interpret JSON with C#, and error handling, it was just a hassle. Not to mention the fact that I really want to get better at Python, so yay!

This page is basically going to walk through my creation of the software which shall henceforth be named “IC Inventory”. At the bottom of the page is a link to the github reposity (or it will be there, once I get some code posted). But anyways, let’s begin.


So it turns out it is a lot of work documenting a programming project. Instead, I’ll just post some screenshots of the software as I have it now – it is around 80% complete. Here is the github link:

Here are some screenshots:



First step: Planning

Program Summary:

August 27th, 2016

IC Inventory is a desktop program created to help me keep track of all of the different integrated circuits that I have collected. The program will allow me to use the Octopart API to search for the part that I have, and add it to my local inventory. The program will allow me to automatically download datasheets, as well a search function for searching my own inventory. This way if I need an op-amp, I can search my inventory to find all of the op-amps that I have. I also hope to add a price feature that shows the prices for parts.

Mandatory features:

  • Provide interface for the Octopart search engine
  • Maintain local inventory of parts
  • Provide interface to search the local inventory
  • Automatically download datasheet for parts

Optional features:

  • Show vendor prices for the parts
  • Barcode management for sorting inventory

Initial Thoughts:

Starting off, I know that the Octopart API is a Rest API. The data that Octopart returns is in the JSON format. Finally I want to program this all in Python. I will use the TkInter library to make the GUI. I’ll just state right off the bat: I hate making programmatic GUIs. I know they provide more customization, but it is just so tedious… Anyways, that’s the route I’ll be going. So the first thing I should do is make a rough sketch of what the GUI will look like.

Search Screen:


Inventory Screen:


Settings Screen: