Giter VIP home page Giter VIP logo

replaysmike / binner Goto Github PK

View Code? Open in Web Editor NEW
238.0 13.0 38.0 15.42 MB

Open source parts inventory system for makers, electronics hobby, and professional engineers

Home Page: https://binner.io

License: GNU General Public License v3.0

C# 77.98% HTML 0.13% JavaScript 20.32% CSS 1.15% Inno Setup 0.20% Batchfile 0.01% Shell 0.03% PowerShell 0.19%
binner digikey inventory-management makers electronics mouser parts-management inventory inventory-system inventory-app

binner's People

Contributors

dependabot[bot] avatar replaysmike avatar shaun-leach avatar travisolbrich avatar xianmingfeng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

binner's Issues

Fix warnings

After updating to .Net 6 a lot of warnings are being generated in regards to System.Drawing support.

Switch to a more portable library for graphics operations in regards to generating labels.

Will this work on liunx?

Is this application designed to support running on Linux (serverside)? If so, could you point me to the intallation instructions for the same.

Thank you! Looks like a cool project.

Parent not associated on create part type, first created type only deletes after second delete click

I created a new part type on the release build of Binner
And set it's parent as "IC"

It does not reflect in the parent selection box.
Screenshot_20220903_125812
The usual type to search complete selections also do not work on this dropdown.
So items are crated without the parent associated and have to be manually assigned after being created.

However additionally when attempting to remove the first created part type, it only removes the parent association but not the part itself.
On a subsequent delete click or after creating another part type it then removes the part.

Screenshot_20220903_125418

This is certainly some unexpected behavior.

Binner 2.2.0 doesn´t run on Ubuntu 20.04.4 LTS

Hello Mike,

Binner doesn´t run on Ubuntu. The Service is not started correctly.

image

I can´t find the error.

Could you assist? I already have two different Versions of binner active and running to compare each other but I cant get Version 2.2.0 to work.

BR

norticum

Filtering Inventory by a field like "Bin Number" doesn't work

When you click on a specific "Bin Number", like "Connectors" below:

image

the URI that gets sent is: https://{server}:8090/inventory/inventory?by=binNumber&value=Connectors, which navigates to the "Edit Inventory" page. It should instead be https://{server}:8090/inventory?by=binNumber&value=Connectors

It looks like the reason for this is that PartsGrid.js is adding an extra inventory to the Link To URI.:

<Link to={`inventory?by=binNumber&value=${p.binNumber}`} onClick={this.handleSelfLink}>

If you manually load https://{server}:8090/inventory?by=binNumber&value=Connectors, it works, and you can correctly see a filtered list:

image

I tried to fix this in PartsGrid.js, and the URI correctly changes to add the by=binNumber&value=Connectors part, but the table of parts doesn't update to apply the filtering. Likewise, if I refresh to force it to apply, and then click to remove the filter, the filter disappears from the UI (and the URL goes back to https://{server}:8090/inventory), but the table of parts doesn't update to show all of them again:

image

I fiddled with it for a while, but don't really know what I'm doing with JS/web, and couldn't figure out how to force it to properly refresh.

Along with this, two other requests for inventory management:

  1. Could this page be set up so I could filter by "Bin Number" and search by text at the same time? For example, I'd like to be able to select my "Connectors" bin, and then search for components within it. Right now, if I have a filter applied and type a search, it clears my filter.
  2. Could you add "Part Type" as a column to the left of "Bin Number"? I'd like to be able to filter my inventory by Part Type. I fiddled with it and got it to display the integer ID for Part Type, but couldn't figure out how to map that to the string.

Thanks!

No Binner.Web in release file v2.1.0

$ tar -ztvf Binner_linux-x64-2.1.0.tar.gz
drwxrwxrwx 0/0               0 2023-01-27 21:50 ./
-rw-rw-rw- 0/0             109 2023-01-27 21:27 ./Binner.service.systemctl.template
drwxrwxrwx 0/0               0 2023-01-27 21:38 ./ClientApp/
-rw-rw-rw- 0/0             446 2023-01-27 21:27 ./install-as-service.sh
-rw-rw-rw- 0/0             352 2023-01-27 21:27 ./install-certificate.sh
drwxrwxrwx 0/0               0 2023-01-27 21:34 ./ClientApp/build/
-rw-rw-rw- 0/0             369 2023-01-27 21:34 ./ClientApp/build/asset-manifest.json
-rw-rw-rw- 0/0           32038 2023-01-27 21:27 ./ClientApp/build/favicon.ico
drwxrwxrwx 0/0               0 2023-01-27 21:33 ./ClientApp/build/image/
-rw-rw-rw- 0/0             905 2023-01-27 21:34 ./ClientApp/build/index.html
-rw-rw-rw- 0/0             305 2023-01-27 21:27 ./ClientApp/build/manifest.json
drwxrwxrwx 0/0               0 2023-01-27 21:34 ./ClientApp/build/static/
drwxrwxrwx 0/0               0 2023-01-27 21:34 ./ClientApp/build/static/css/
drwxrwxrwx 0/0               0 2023-01-27 21:34 ./ClientApp/build/static/js/
-rw-rw-rw- 0/0         4251094 2023-01-27 21:34 ./ClientApp/build/static/js/main.e08ac616.js
-rw-rw-rw- 0/0            5152 2023-01-27 21:34 ./ClientApp/build/static/js/main.e08ac616.js.LICENSE.txt
-rw-rw-rw- 0/0        19784723 2023-01-27 21:34 ./ClientApp/build/static/js/main.e08ac616.js.map
-rw-rw-rw- 0/0          248624 2023-01-27 21:34 ./ClientApp/build/static/css/main.24769074.css
-rw-rw-rw- 0/0          645979 2023-01-27 21:34 ./ClientApp/build/static/css/main.24769074.css.map
-rw-rw-rw- 0/0           15289 2023-01-27 21:27 ./ClientApp/build/image/datasheet.png
-rw-rw-rw- 0/0            8397 2023-01-27 21:27 ./ClientApp/build/image/logo-dark-200x54.png
-rw-rw-rw- 0/0            3328 2023-01-27 21:27 ./ClientApp/build/image/logo-light-200x54.png
-rw-rw-rw- 0/0            5517 2023-01-27 21:27 ./ClientApp/build/image/microchip.png
-rw-rw-rw- 0/0            7424 2023-01-27 21:27 ./ClientApp/build/image/pinout.png
-rw-rw-rw- 0/0           14783 2023-01-27 21:27 ./ClientApp/build/image/referencedesign.png

error while saving the settings

API Error
AutoMapper.AutoMapperMappingException
Settings Error! An exception occurred of type AutoMapper.AutoMapperMappingException Missing type map configuration or unsupported mapping. Mapping types: SettingsRequest -> WebHostServiceConfiguration Binner.Common.Models.Requests.SettingsRequest -> Binner.Common.Configuration.WebHostServiceConfiguration
Api Endpoint: https://192.168.4.22:8090/system/settings
at lambda_method17(Closure, SettingsRequest, WebHostServiceConfiguration, ResolutionContext) at Binner.Web.Controllers.SystemController.SaveSettings(SettingsRequest request) in C:\projects\binner\Binner\Binner.Web\Controllers\SystemController.cs:line 50

Exception on inventory page load related to bar code

I get the following 500 and stack trace on every inventory page:

Host info:

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

image

System.TypeInitializationException: The type initializer for 'Gdip' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'libgdiplus' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibgdiplus: cannot open shared object file: No such file or directory
   at System.Drawing.SafeNativeMethods.Gdip.GdiplusStartup(IntPtr& token, StartupInput& input, StartupOutput& output)
   at System.Drawing.SafeNativeMethods.Gdip..cctor()
   --- End of inner exception stack trace ---
   at System.Drawing.SafeNativeMethods.Gdip.GdipGetGenericFontFamilySansSerif(IntPtr& fontfamily)
   at System.Drawing.FontFamily.GetGdipGenericSansSerif()
   at System.Drawing.FontFamily.get_GenericSansSerif()
   at System.Drawing.Font.CreateFont(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte charSet, Boolean isVertical)
   at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
   at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style)
   at BarcodeLib.Barcode..ctor()
   at Binner.Common.IO.Printing.BarcodeGenerator.GenerateBarcode(String partNumber, Int32 width, Int32 height)
   at Binner.Web.Controllers.PartController.BarcodePart(GetPartRequest request)
   at lambda_method(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)

Add unit tests

Tests are needed system wide. Skipped them so far for getting this out fast but feature creep has kicked in

Add additional storage providers

Add and improve capabilities for additional storage providers.

  • Externalize Sql Server support
  • Add Postgresql support
  • Add MySql support
  • Add Sqlite support

Each provider will need their own configuration and should be available as nuget packages.

Modifying Existing Parts Save Issue - "Duplicate Part"

Hi Mike, another one for you. I think the behaviour may have changed since the update and I hope I'm not just making a simple mistake here.

I'm trying to edit an existing part (add a data sheet link). I search for the part, click on it to 'Edit Inventory' and make the changes. When I click on 'Save' the app thinks I'm trying to create a new part and pops up with the 'Duplicate Part' dialog box. Clicking 'Cancel' loses the changes and clicking 'Save Anyways' duplicates the part.

It creates a new part with most of the original part's fields missing. In this example I had quantity '98' and the new part has only '10'. The link to the datasheet wasn't saved to either part. Very strange.

I don't think it should be popping up with the 'Duplicate Part' dialog box when editing an existing item - something is going wrong there... on my installation at least.

Let me know if you need any more details or further testing/description.

Add Version Details to Web Interface

Hi Mike, hope you're well. A simple request, but hopefully a useful one - please would you consider adding the version number to the web interface? I'm never quite sure what version I'm using and so this would be a useful feature. Thanks!

Fix SSL Certificates not being trusted on unix environments

I might need some help from the community on this one, as I've tried every way I could find in order to get a self-signed certificate to be trusted on ubuntu/linux. Firefox/Chrome still say the CA authority is not valid, and I'm not sure if there is something different about the certificate itself or the way browser certificate chains are validated on unix. Works fine on Windows.

I've tried the following:

sudo cp ./Certificates/Binner.crt /usr/local/share/ca-certificates
sudo update-ca-certificates
sudo apt install libnss3-tools
pk12util -d sql:$HOME/.pki/nssdb -i ./Certificates/Binner.pfx
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n 'dev cert' -i ./Certificates/Binner.crt

and

apt-get install ca-certificates
sudo cp ./Certificates/Binner.crt /usr/share/ca-certificates
dpkg-reconfigure ca-certificates
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "Binner CA" -i ./Certificates/binner.crt

PostgreSQL problem bug

Products are added to the database compared to maria, but numbers are not displayed in the Dashboard

Error in browser
GET https://172.30.11.23:8090/part/summary net::ERR_ABORTED 500 Home.js:19

Unable to preventDefault inside passive event listener invocation. react-dom.production.min.js:77

Binner 2.0.31 installation not possible on Ubuntu Server 20.4.4

Hello,

can anyone assist me (a Linux noob) to get a running installation on Ubuntu 20.4.4?

By starting the installation with: sudo ./install-as-service.sh
I get:
chmod: cannot access './Binner.service': No such file or directory
Binner.Web is now running - http://localhost:8090

but the Website is not reachable.

By starting Binner.Web with: sudo ./Binner.Web
I get:
.Net Core bundle path: /home/norticum/
Config file location: /home/norticum/appsettings.json
Unhandled exception. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> Binner.Common.BinnerConfigurationException: The database filename is invalid on this environment and should be a unix-compatible path: 'C:\Binner\binner.db'
at Binner.Common.StorageProviders.BinnerFileStorageProvider.ValidateBinnerConfiguration(BinnerFileStorageConfiguration config)
at Binner.Common.StorageProviders.BinnerFileStorageProvider..ctor(IDictionary2 config) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Span1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Binner.Common.StorageProviders.StorageProviderFactory.Create(String providerName, IDictionary`2 config)
at Binner.Web.Configuration.StartupConfiguration.ConfigureIoC(IServiceContainer container, IServiceCollection services)
at Binner.Web.Program.ConfigureServices(IServiceContainer container)
at Binner.Web.Program.Main(String[] args)
Aborted

I found that the appsettings.json file was missing and I created one (copy of example from https://github-wiki-see.page/m/replaysMike/Binner/wiki/Configuration) and paced it to the home location.

I also installed Node.js v10.19.0.

I am sure it only can be a small issue but I cant find it. Can anyone help?

-norticum

printing error

on the Mac version, I get the following error when trying to print:

CUPS: Print process id 72822 started!
CUPS Error: lp: No such file or directory
CUPS: Process 72822 finished with exit code 1

even though lp daemon recognizes Dymo as default printer.

Add authorization

Hi Mike. Add authorization and differentiation by roles in the new version. I think it will be useful in the corporate segment

Add upload PDF files datasheet

Add the ability to download a PDF datasheet file. The local ability to store datasheet files will be useful, and colleagues asked about it)

Install on RaspberryPi 4

Is there a possibility to run the application on a RaspberryPi as a server?

Thank you for your time.

Mouser order import

Running the ubuntu build of v2.0.20, I used the gui to setup the Mouser API keys and then went to import my orders. Import just hangs at a spinning wheel. I checked the appsettings.json and the keys are in the appropriate places. Terminal shows
Application Error: Binner.Web.Controllers.PartController.OrderImportAsync (Binner.Web)
Exception: InvalidOperationException Mouser Api is not configured!

latest Binner do not start

Getting this with 2.2.2

2023-02-11T10:36:44.361647106Z �%      Binner 2.2.2.0      �%
2023-02-11T10:36:44.366642499Z p%%%%%%%%%%%%%%%%%%%%%%%%%%%o%
2023-02-11T10:36:44.373363158Z O/S: Linux 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 (X64)  Runtime: .NET 7.0.0
2023-02-11T10:36:44.375062154Z Uri: https://localhost:8090/
2023-02-11T10:36:44.375328087Z 
2023-02-11T10:36:44.574657560Z Configuration Result:
2023-02-11T10:36:44.574694613Z [Success] Name Binner
2023-02-11T10:36:44.574704034Z [Success] Description Hosts the Binner Web Service
2023-02-11T10:36:44.574712936Z [Success] ServiceName Binner
2023-02-11T10:36:44.575439248Z Topshelf v4.3.0.0, .NET 7.0.0 (7.0.0)
2023-02-11T10:36:44.588922155Z Topshelf.Runtime.Windows.WindowsHostEnvironment Error: 0 : Unable to get parent process (ignored), System.DllNotFoundException: Unable to load shared library 'kernel32.dll' or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you're using glibc, consider setting the LD_DEBUG environment variable: 
2023-02-11T10:36:44.588979113Z /app/kernel32.dll.so: cannot open shared object file: No such file or directory
2023-02-11T10:36:44.588992063Z /app/libkernel32.dll.so: cannot open shared object file: No such file or directory
2023-02-11T10:36:44.589002371Z /app/kernel32.dll: cannot open shared object file: No such file or directory
2023-02-11T10:36:44.589012456Z /app/libkernel32.dll: cannot open shared object file: No such file or directory
2023-02-11T10:36:44.589022498Z 
2023-02-11T10:36:44.589030136Z    at Topshelf.Runtime.Windows.Kernel32.CreateToolhelp32Snapshot(UInt32 dwFlags, UInt32 th32ProcessID)
2023-02-11T10:36:44.589061658Z    at Topshelf.Runtime.Windows.WindowsHostEnvironment.GetParent(Process child)
2023-02-11T10:36:44.600432198Z The Binner service is now running, press Control+C to exit.
2023-02-11T10:36:44.645316558Z 2023-02-11 10:36:44.6258|INFO|Binner.Web.ServiceHost.BinnerWebHostService|Loading configuration at /app/appsettings.json|
2023-02-11T10:36:44.826508129Z 2023-02-11 10:36:44.8259|INFO|Binner.Web.ServiceHost.BinnerWebHostService|Building the WebHost on 0.0.0.0:8090 ...|
2023-02-11T10:36:44.855118798Z .Net Core bundle path: /app/
2023-02-11T10:36:44.855141907Z Config file location: /app/appsettings.json
2023-02-11T10:36:45.164572525Z 2023-02-11 10:36:45.1564|ERROR|Binner.Web.ServiceHost.BinnerWebHostService|Binner had an error starting up!|System.TypeLoadException: Method 'CreateOAuthRequestAsync' in type 'Binner.StorageProvider.MySql.MySqlStorageProvider' from assembly 'Binner.StorageProvider.MySql, Version=1.0.26.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
2023-02-11T10:36:45.164914467Z    at Binner.Common.StorageProviders.StorageProviderFactory..ctor()
2023-02-11T10:36:45.165086807Z    at DynamicMethod(Object[], Scope)
2023-02-11T10:36:45.165107271Z    at LightInject.PerContainerLifetime.GetInstance(GetInstanceDelegate createInstance, Scope scope, Object[] arguments)
2023-02-11T10:36:45.165119970Z    at LightInject.ServiceFactoryExtensions.GetInstance[TService](IServiceFactory factory)
2023-02-11T10:36:45.165142333Z    at Binner.Web.Configuration.StartupConfiguration.ConfigureIoC(IServiceContainer container, IServiceCollection services) in C:\projects\binner\Binner\Binner.Web\Configuration\StartupConfiguration.IoC.cs:line 44
2023-02-11T10:36:45.165157775Z    at Binner.Web.WebHost.Startup.ConfigureServices(IServiceCollection services) in C:\projects\binner\Binner\Binner.Web\WebHost\Startup.cs:line 62
2023-02-11T10:36:45.165169860Z    at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
2023-02-11T10:36:45.165187886Z    at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
2023-02-11T10:36:45.165199157Z    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
2023-02-11T10:36:45.165211812Z    at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
2023-02-11T10:36:45.165223208Z    at Microsoft.AspNetCore.Hosting.StartupLoader.ConfigureServicesDelegateBuilder`1.<>c__DisplayClass14_0.<ConfigureServices>g__ConfigureServicesWithContainerConfiguration|0(IServiceCollection services)
2023-02-11T10:36:45.165243726Z    at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
2023-02-11T10:36:45.165255134Z    at Microsoft.AspNetCore.Hosting.WebHost.EnsureApplicationServices()
2023-02-11T10:36:45.165264653Z    at Microsoft.AspNetCore.Hosting.WebHost.Initialize()
2023-02-11T10:36:45.165273722Z    at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
2023-02-11T10:36:45.165282916Z    at Binner.Web.ServiceHost.BinnerWebHostService.InitializeWebHostAsync() in C:\projects\binner\Binner\Binner.Web\ServiceHost\BinnerWebHostService.cs:line 136
2023-02-11T10:36:45.165897012Z Service Stop requested, exiting.
2023-02-11T10:36:45.166481957Z Stopping the Binner service
2023-02-11T10:36:45.167144170Z The Binner service has stopped.
2023-02-11T10:36:45.246762642Z 

API Search keys not working on raspy

I guess I've missed something during the setup but the mouser API keys are not working in my place.
I've added the search API key to the appsettings.json and restart the service. But still when I add a part I only get the wheel running and no meta data is updated.
I guess it is something easy.

State of the project

What is the current state/future of this project? I struggled to find something like this with such great features.

Update to .Net 6

An update from .Net core 3 to .Net 6 should be done for compatibility and maintenance reasons. This should also aid in multi-platform support (Raspberry Pi, Windows, other unix flavors)

SQL Connection Configuration - Unhandled Exception

Your software looks really great, exactly the sort of thing I'm looking for! I was keen to make it work with SQL (I'm a bit of a control freak and like to see my data and have access to it) and I've been pulling my hair out for the past few hours trying to make it work. The application just kept crashing shortly after start. I created a Python script to test my SQL (Express) database connection to make sure all was working OK. I was reminded that my connection string couldn't contain a \ without an escape character (i.e. \\) and that's when the penny dropped!

My connection string was:
"ConnectionString": "Server=localhost\SQLEXPRESS;Database=Binner;Trusted_Connection=Yes;"

But of course it should have been:
My connection string was:
"ConnectionString": "Server=localhost\\SQLEXPRESS;Database=Binner;Trusted_Connection=Yes;"

The unhandled exception made it tough to track down. Might be an idea to provide an error message? Or maybe at least make a note in the default configuration file. I realise now that the Filename path is provided correctly, but I was ignoring that because I was working on the SQL connection.

Anyway, thanks for the great software, onwards and upwards as I can now finally start to use it! :)

Installation - Web Portal Opens with http Instead of https

Hi Mike,

I've just installed V2.0.1.1 on fresh machine that hasn't had Binner installed on it before. Having more success this time. However, a small but important point is that after the installer has finished the initial webpage opened is still:

http://localhost:8090/

instead of

https://localhost:8090/

I know this has been raised with you before and I think you mentioned it was fixed. But it doesn't seem to be.

Keep up the great work!

Cross-platform printer support

With the upgrade to .Net 6 we are now getting lots of warnings related to GDI/Printer support.

Need to build a cross-platform solution for dealing with printing of custom labels. It seems the DYMO sdk is not cross-platform, though they claim it is.

One possibility is through the use of lp command, and generate PDF labels.
Another may be to utilize the raw epson esc/p protocol.

Add part edit UI

Edit mode is needed for full part data, currently we only have partial edit updates supported.

Error edit inventory

An error is displayed in the inventory. And also there is no possibility to download images and datasheets by clicking
binner

DigiKey now requires an `https` OAuth Callback URL

I just created both a Binner Production App and Sandbox App in my DigiKey account. Both gave the following message when I tried to use http://localhost:8090/Authorization/Authorize

Your OAuth Callback Url must begin with "https://"

MySQL problem on fresh install

Fresh install of v2.0.59 on Ubuntu 22 with MySQL v8.0.29 (latest stable releases all round).

appsettings.json excerpt:

"StorageProviderConfiguration": {
  "StorageProviderConfiguration": {
    "Provider": "MySql",
    "ProviderConfiguration": {
      "ConnectionString": "Server=localhost;Database=XXX;Uid=XXX;Pwd=XXX;" // MySql provider
    }
  }
}

When trying to create a new part, every time "Save" is clicked the following exception is thrown:

  Exception: MySqlException 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 'Rank) AS
(
SELECT PartId, 10 as Rank FROM Parts WHERE (NULL IS NULL OR UserId = ' at line 1
  Stack Trace:    at MySqlConnector.Core.ServerSession.ReceiveReplyAsyncAwaited(ValueTask`1 task) in /_/src/MySqlConnector/Core/ServerSession.cs:line 956
   at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 171
   at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 108
   at MySqlConnector.MySqlDataReader.CreateAsync(CommandListPosition commandListPosition, ICommandPayloadCreator payloadCreator, IDictionary`2 cachedProcedures, IMySqlCommand command, CommandBehavior behavior, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 475
   at MySqlConnector.Core.CommandExecutor.ExecuteReaderAsync(IReadOnlyList`1 commands, ICommandPayloadCreator payloadCreator, CommandBehavior behavior, Activity activity, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/CommandExecutor.cs:line 77
   at MySqlConnector.MySqlCommand.ExecuteReaderAsync(CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlCommand.cs:line 331
   at Binner.StorageProvider.MySql.MySqlStorageProvider.SqlQueryAsync[T](String query, Object parameters)
   at Binner.StorageProvider.MySql.MySqlStorageProvider.FindPartsAsync(String keywords, IUserContext userContext)
   at Binner.Common.Services.PartService.FindPartsAsync(String keywords) in C:\projects\binner\Binner\Library\Binner.Common\Services\PartService.cs:line 34
   at Binner.Web.Controllers.PartController.CheckForDuplicateAsync(CreatePartRequest request, Part part) in C:\projects\binner\Binner\Binner.Web\Controllers\PartController.cs:line 503
   at Binner.Web.Controllers.PartController.CreatePartAsync(CreatePartRequest request) in C:\projects\binner\Binner\Binner.Web\Controllers\PartController.cs:line 106
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.