PartFinder component inventory manager

After spending far too long looking for components and parts, I wrote a component inventory manager called PartFinder and released it as open source for anyone to download and use

Table of Contents

Please support the blog by shopping at abelectronics

Please support the blog and our projects by buying your Raspberry Pi development boards from our online store at AB Electronics UK.

Date 29 March 2020
Views 11,265
Time to read 6 minutes read

Part Finder

Update June 2024: I have released a new version of PartFinder which runs on Asp.net Core and is mulitplatform https://www.briandorey.com/post/partfindercore-component-inventory-manager

For several years we have been using PartKeepr https://partkeepr.org/ to keep track of the thousands of components we have in our workshop.

Over the past few months, we found the daily backups from PartKeepr are taking a very long time due to the thousands of folders and files the software creates. Our installation of Partkeepr has over 113,000 folders.

As I currently have plenty of spare time due to the lockdown from the global pandemic, I decided to write my own component inventory system and make it open-source for anyone else to use.

As our web servers run Windows Server I decided to make this as an ASP.Net C# project and use SQL Server Express (or full) for the database.

This can also be run on a Windows desktop/laptop running Windows 10 Pro with the installation of the IIS services and SQL Server Express.

Installation

To install and set up PartFinder, download the files from GitHub https://github.com/briandorey/PartFinder and extract them to a folder.

In SQL Manager, create a new database called PartFinder and run database.sql in partfinder/setup to create the database tables, and views and add default data for footprints and part categories.

Create a new user for the database and give the following permissions: Connect, Select, Update, Delete, and Execute.

Edit the web.config file in the PartFinder root and update the connection string MainConn in with the username and password for your database.

In Internet Information Services (IIS) Manager, create a new website and set the folder path to the location you extracted the files.

Setup Security

If you are running this application on a public-facing connection or server, you need to create a login using an email address and password.

To add the first user, go to the /setup folder in your web browser and create your first user account to sign into Part Finder.

Delete the setup folder once the setup is completed.

The system can be used on an intranet or local machine without the login requirement by commenting out the following section in the web.config file:

 
 
  
  
  

Images and File Manager Permissions

The admin section contains a file manager which allows you to create directories/folders and add files within the "/docs" folder in the website root.

This will need to add read/write permissions for the IIS/User account on your server/computer for this folder.

Dashboard
Dashboard
admin
Admin
File manager
File manager
Manufacturers
Manufacturers

Dashboard

The Dashboard gives you an overview of the system with totals for Parts, Manufacturers, Attachments and Storage Locations. It also lists any parts which have less than your low stock level available.

Parts

The Parts section is where you manage all your components/parts with a tree-view or list view to find your parts and a parts details page with your item’s main details, attachments, suppliers and parameters.

You can also duplicate a part if you are adding similar new items.

Storage

In the Storage section, you can add and edit your storage locations before adding new parts for each location.

You can add storage locations one at a time or use the Storage Location Grid page to bulk add locations such as storage drawers etc. These can be edited in the admin section (cog icon).

Manufacturers

In the Manufacturers section, you can add and edit component manufacturers before adding new parts. These can be edited in the admin section (cog icon).

Footprints

In the Footprints section, you can add and edit your component footprints before adding new parts. These can be edited in the admin section (cog icon).

Files

The file manager allows you to view the /docs folder on your PartFinder website. You can add upload new files and create folders, view and delete files.

Please note if you delete a folder or file which is linked to an existing part, it will not remove the database record for the file.

Admin

The admin section has Add, Edit and List pages for Users, Categories, Footprint Categories, Footprints, Storage Locations, Manufacturers and the file manager.

Parts Management

Dashboard
Parts List
Add new Part
Add Part
Edit Part
Edit Part
Part Details
Part Details

License

Copyright 2020 Brian Dorey

This software has been released under the MIT license https://opensource.org/licenses/MIT

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

56 Comments

  • User Image

    Chetan Soni

    10 February 2021 at 7:08 am

    Hi..
    Am getting this error on trying to run the sql file "Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[test] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [Parts](' at line 1
    "

    • User Image

      Brian

      10 February 2021 at 9:14 am

      Chetan, you need to use Microsoft SQL Server, not MySQL for the database.

  • User Image

    Chetan Soni

    11 February 2021 at 7:54 am

    Hi Brian, am completely new to all of this so having issues. Now am stuck at website, I have created new website in IIS but when I try to open it in browser it says "Can't reach this page, server IP address could not be found". Any help would be appreciated.

  • User Image

    Joern

    22 July 2021 at 8:43 pm

    Works great !!

  • User Image

    Mark Mason

    24 July 2021 at 5:49 pm

    How do I configure this, if not using the route of the website - for example www.website.com/part-finder

    • User Image

      Brian

      24 July 2021 at 6:23 pm

      Mark, You need to update the web.config to point any file references to the sub folder and copy all files into the sub folder. You may need to update file paths to the new folder location.

  • User Image

    Manfred

    22 April 2022 at 10:53 am

    Hi Brian, when I modify the footprint in /doc/footprint the corrosponding part still keeps the old footprint. How can I update the parts footprint?

    • User Image

      Brian

      22 April 2022 at 11:28 am

      Hi Manfred
      Are you editing the footprints in the admin section /admin/footprints/default.aspx ? Updating a footprint should update all parts which are using it.

  • User Image

    Manfred

    28 April 2022 at 1:23 pm

    Hi Brian, you didn´t get me right: When I modify the symbol for a footprint in /doc/footprint/ and the try to change it for the footprint, I still see the old grafic under ../admin/filebrowser.aspx?d=\footprints&fn=form1&fieldname=ContentPlaceHolder1_FootprintImage
    and i can´t change the symbol for the footprint.

    • User Image

      Brian

      29 April 2022 at 10:00 am

      Hi Manfred, I think you will need to delete the old image first then upload a new one with the same name. I don't think the file manager will overwrite an exiting file.

  • User Image

    Manfred

    29 April 2022 at 10:33 am

    When I delete the old symbol and then upload a new with the same name, I can see the new symbol in the file preview. But when I change the symbol in the footprint it still shows the old symbol. when I go back to Admin/Files/docs/footprints there is the old symbol too. Seems like the database kepps the old information and bring it back due to the same file name....
    any ideas?

  • User Image

    Swapnil sahu

    10 June 2022 at 4:59 pm

    how to run this application can anybody tell?
    I'm getting error while login

    • User Image

      Brian

      10 June 2022 at 8:17 pm

      What is the error message you are getting when trying to login? Are the database permissions setup correctly?

  • User Image

    Swapnil sahu

    10 June 2022 at 5:01 pm

    can you make a video on installation of partfinder?

  • User Image

    Swapnil sahu

    13 June 2022 at 6:04 am

    I'm getting this error " The Web project 'PartFinder-master' requires SQL Server Express, which is not
    installed on this computer.
    To upgrade the project database to use latest SQL Server Express LocalDB,
    double-click the database file and follow the instructions. Note: After this
    upgrade, the project database can't be modified using earlier versions of
    Visual Studio.
    To continue using the same database for this project, install it from the
    Microsoft Download Center.".

    • User Image

      Brian

      13 June 2022 at 9:01 am

      You can download SQL Server Express from the link at the bottom of the page on https://www.microsoft.com/en-gb/sql-server/sql-server-downloads

  • User Image

    Swapnil sahu

    14 June 2022 at 6:10 am

    Now it is saying "can't reach the site".

  • User Image

    Swapnil sahu

    14 June 2022 at 7:05 am

    A network-related or instance-specific error occurred while
    establishing a connection to SOL Server. The server was not
    found or was not accessible. Verify that the instance name is
    correct and that SQL Server is configured to allow remote
    connections. (provider: SQL Network Interfaces, error: 26
    Error Locating Server/Instance Specified)

  • User Image

    Swapnil sahu

    15 June 2022 at 9:43 am

    I am getting this error now "A network-related or instance-specific error occurred while
    establishing a connection to SOL Server. The server was not
    found or was not accessible. Verify that the instance name is
    correct and that SQL Server is configured to allow remote
    connections. (provider: SQL Network Interfaces, error: 26
    Error Locating Server/Instance Specified)".

  • User Image

    Swapnil sahu

    15 June 2022 at 7:48 pm

    I tried two time and it is giving me this error again " Server Error in '/' Application.
    Login failed for user 'PartFinder'. Reason: The password of the account must be changed
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'PartFinder'. Reason: The password of the account must be changed.
    ".

    • User Image

      Brian

      15 June 2022 at 9:39 pm

      I think you forgot to untick the option on the database user account for Enforce password policy, Enforce password expiration and User must change password at next login

  • User Image

    Swapnil sahu

    16 June 2022 at 6:18 am

    Thank you so much sir for giving your precious time to me it really means a lot to me
    thank you so much again :)

  • User Image

    Swapnil sahu

    16 June 2022 at 8:09 am

    Sir how to deploy this project into locally or into same server to multiple PCs?

    • User Image

      Brian

      16 June 2022 at 10:56 am

      To allow other computers on your network to access the website, you will need to allow network port 80 on the computers firewall and this will allow the other computers to access the website in their browsers via the IP address or computer name.

  • User Image

    Swapnil sahu

    21 June 2022 at 11:00 am

    Sir can I deploy this project in web and if I do so will it be secured?

    • User Image

      Brian

      21 June 2022 at 12:07 pm

      You can have the partfinder system as a publically accessible website but you must remove the setup folder before the site is live on the internet.

  • User Image

    Swapnil sahu

    22 June 2022 at 6:09 am

    and how we can do that? should I directly upload the database and file into site?

    • User Image

      Brian

      22 June 2022 at 10:16 am

      You will need a Windows web server with MS Sql server installed and set it up in the same way as you did on your Windows 10 computer. You will need a domain name to be configured for the server.

  • User Image

    Swapnil sahu

    22 June 2022 at 1:02 pm

    Thank you sir.

  • User Image

    Swapnil sahu

    22 June 2022 at 1:05 pm

    Sir do you know any thing about libuvc windows?

    • User Image

      Brian

      23 June 2022 at 9:48 am

      I am sorry but I don't know anything about libuvc

  • User Image

    Swapnil sahu

    27 June 2022 at 2:14 pm

    can you tell where can i deploy this project?

    • User Image

      Brian

      27 June 2022 at 3:13 pm

      You can deploy the project on any Windows Server which has MS SQL Server Express or MS SQL Server installed

  • User Image

    swapnil

    04 August 2022 at 11:27 am

    sir while adding parts it is not show in the dashboard but it is showing how many parts are there.
    why it is happening?

    • User Image

      Brian

      09 August 2022 at 9:29 am

      Did you assign a manufacturer and category to the part? This can stop them from appearing in the lists.

      This has been fixed on an update which was added to github

  • User Image

    Manfred

    17 November 2022 at 1:14 pm

    Hi Brian,
    is there a way to change the storage location of all parts of a category at once? Or do I have to change it part by part (hopefully not)?

    • User Image

      Brian

      17 November 2022 at 1:16 pm

      Hi Manfred

      I am sorry but there isn't a way to change them all in bulk in the site admin, you could do this direct in the database by updating the location column ID to the new location ID

  • User Image

    Manfred

    17 November 2022 at 1:32 pm

    can you pleas give me a hint, how to do that?

    • User Image

      Brian

      17 November 2022 at 1:45 pm

      Open Microsoft SQL Server Management Studio and sign in
      Open PartFinder database and right click on StorageLocations table and select “Select top 1000 rows”
      In the table which opens find the “StoragePkey” for the old location and the “StoragePkey” for the new location.
      Right click on PartFinder database and select “New Query” which will open a blank window.
      Paste into the window:

      USE [PartFinder]
      GO
      UPDATE [dbo].[Parts]
      SET [StorageLocationID] = newlocationid
      WHERE [StorageLocationID] = oldlocationid
      GO

      Replace newlocationid with the StoragePkey for the new location
      Replace oldlocationid with the StoragePkey for the old location

      Above the query window click the “Execute” button with the green arrow. This will update all the parts to the new location.

  • User Image

    Manfred

    18 November 2022 at 6:09 am

    Thank you very much for your support!
    Is it possible to change the location only for one part category? Sorry but I am not familiar with DB scripting....

  • User Image

    Manfred

    18 November 2022 at 6:23 am

    I got it myself, just change one line to:
    WHERE [StorageLocationID] = oldlocationid and [PartCategoryID] = PCpkey

  • User Image

    Manfred

    22 November 2022 at 7:21 am

    Hi Brian, I just set up a new Server with the latest release of the software. I can log in, and I can add new parts. The number of parts on the dashboard increases, but the partlist is empty! When I look via Managment Studio in the parts table the parts are there but not shown in the list...
    Any idea?

    • User Image

      Brian

      22 November 2022 at 8:50 am

      Hello Manfred

      Please can you check in the database if there is a location id and manfacturer id assigned to the parts? I think if either of these are missing i will stop the part from appearing in the listings..

  • User Image

    Manfred

    22 November 2022 at 9:01 am

    Thats it, no location Id was set.
    Another question: can I import the old version Database to the latest Version of PartFinder?

    • User Image

      Brian

      22 November 2022 at 9:36 am

      You can import the old database by creating a backup on the old server and restoring it onto the new server. This will overwrite any entries you have added to the new database.

  • User Image

    Manfred

    22 November 2022 at 10:21 am

    Ok, I restored the old database to the new server. Copied the old DOC Folder(With footprints and Datasheets) to the new location. When I look in Admin/files/docs I can see the manufacturers but clicking on the + symbol nothing happens. When I click on the manufacturer the program says "This folder does not contain any files" ?

    • User Image

      Brian

      22 November 2022 at 11:27 am

      Hello Manfred

      I am sorry that you are having issues with the admin on the partfinder software.

      Please can you right click on the /docs folder and set the IIS user to have read/write permissions of the folder and all subfolders? Hopefully this will solve the issues.

  • User Image

    Manfred

    22 November 2022 at 11:35 am

    I have done that already, can not access the subfolders in partfinder....

  • User Image

    Manfred

    22 November 2022 at 11:38 am

    I have done that already, can not access the subfolders in partfinder....
    Even new attached parts with a datasheet do not appear. Dashboard says I have part attachments, clicking on list shows the manufacturelist with +symbols but clicking the manufacturer still says "folder does not contain files"

  • User Image

    Edward Collard

    27 February 2024 at 7:32 pm

    As of today February 27 2024, I can't find a download link for Partfinder. Please help.

    • User Image

      Brian

      27 February 2024 at 7:32 pm

      The download link is in the Installation section on this page at GitHub

  • User Image

    Keith

    04 March 2024 at 11:56 am

    Hi Brian,

    It took a while, the setup video is perfect. But I got Partkeeper up and running and it works great. I'm using it a slightly different way to incorporate builds.
    Could you tell me, does the search only work on the description field and if so how would I go about changing it to search other fields please.
    Also is there a way to upload parts I have on an excel sheet directly into partfinder or do I need to input each part individually?
    Many thanks

    • User Image

      Brian

      04 March 2024 at 11:56 am

      Hi Keith, you can add additional search fields by editing the search.aspx page and add the extra fields to the SqlDataSource and its SelectParameters.

  • User Image

    Edward Collard

    11 March 2024 at 8:51 pm

    I was successful in setting up PartFinder. I was wondering if there is a way to add information via a csv file. Your help has as always been invaluable.

    • User Image

      Brian

      11 March 2024 at 8:51 pm

      You maybe able to copy data from the csv using sql manager but you would need to create rows for the types and categories in the database first to have the correct primary keys for the items.


Leave a comment

Your email address will not be published.

Please enter the text from the image below to prove you are a human
Verify you are human

Share

Share to Bluesky

Share to X / Twitter

Share to Facebook

Share to linkedin

Share to Pinterest

Copy Link