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
Admin
File manager
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
Parts List
Add Part
Edit Part
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.
Chetan Soni
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
"
Brian
Chetan, you need to use Microsoft SQL Server, not MySQL for the database.
Chetan Soni
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.
Joern
Works great !!
Mark Mason
How do I configure this, if not using the route of the website - for example www.website.com/part-finder
Brian
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.
Manfred
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?
Brian
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.
Manfred
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.
Brian
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.
Manfred
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?
Swapnil sahu
how to run this application can anybody tell?
I'm getting error while login
Brian
What is the error message you are getting when trying to login? Are the database permissions setup correctly?
Swapnil sahu
can you make a video on installation of partfinder?
Swapnil sahu
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.".
Brian
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
Swapnil sahu
Now it is saying "can't reach the site".
Swapnil sahu
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)
Swapnil sahu
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)".
Brian
I have created a new video which is embeded in the post above and can also be viewed at https://www.youtube.com/watch?v=HMtly87fJGA which shows the installation steps
Swapnil sahu
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.
".
Brian
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
Swapnil sahu
Thank you so much sir for giving your precious time to me it really means a lot to me
thank you so much again :)
Swapnil sahu
Sir how to deploy this project into locally or into same server to multiple PCs?
Brian
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.
Swapnil sahu
Sir can I deploy this project in web and if I do so will it be secured?
Brian
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.
Swapnil sahu
and how we can do that? should I directly upload the database and file into site?
Brian
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.
Swapnil sahu
Thank you sir.
Swapnil sahu
Sir do you know any thing about libuvc windows?
Brian
I am sorry but I don't know anything about libuvc
Swapnil sahu
can you tell where can i deploy this project?
Brian
You can deploy the project on any Windows Server which has MS SQL Server Express or MS SQL Server installed
swapnil
sir while adding parts it is not show in the dashboard but it is showing how many parts are there.
why it is happening?
Brian
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
Manfred
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)?
Brian
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
Manfred
can you pleas give me a hint, how to do that?
Brian
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.
Manfred
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....
Manfred
I got it myself, just change one line to:
WHERE [StorageLocationID] = oldlocationid and [PartCategoryID] = PCpkey
Manfred
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?
Brian
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..
Manfred
Thats it, no location Id was set.
Another question: can I import the old version Database to the latest Version of PartFinder?
Brian
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.
Manfred
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" ?
Brian
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.
Manfred
I have done that already, can not access the subfolders in partfinder....
Manfred
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"
Edward Collard
As of today February 27 2024, I can't find a download link for Partfinder. Please help.
Brian
The download link is in the Installation section on this page at GitHub
Keith
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
Brian
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.
Edward Collard
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.
Brian
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.