bskinn / soi-app

sphobjinv suggest web app
MIT License
0 stars 0 forks source link

sphobjinv suggest Dash App

sphobjinv is a toolkit for manipulating and inspecting Sphinx objects.inv inventory files. It's my most popular open source project by a considerable margin.

While I can't tell from the analytics I have access to, I suspect that the majority of people are using it for the 'suggest' CLI functionality, rather than the 'convert' CLI or API. If nothing else, 'suggest' is definitely the feature I use the most.

It's not always convenient to install a PyPI or OS-distributed package to get access to a tool you need. So, I've been thinking for a while about figuring out a way to provide sphobjinv suggest as a web app. I explored Wooey briefly a while ago, since it's specifically made to wrap a webapp around a CLI. But, not having much web dev experience at the time, I found it pretty cumbersome, and gave up the attempt.

Enter Plotly Dash. I picked it up as part of work on another side project, and realized that I might be able to use it as a platform for a sphobjinv suggest web app. It's almost certainly not the most efficient way to implement the thing, but it works, and it works in a pretty attractive way.

So, here is "sphobjinv suggest as a Service" (... SSaaS?). As of now (Nov 2022), it's built on Dash and sphobjinv, hosted at PythonAnywhere, and does all of the inventory downloading and object searching server-side. If it gets popular, my next step is to try to leverage PyScript to move the suggest portion client-side, so that I can keep the number of PythonAnywhere workers to a minimum. One thing at a time, though.

Please report any problems with the app (or let me know that you like it!) on the Github issue tracker, on Twitter (@btskinn), or on Mastodon (@btskinn@fosstodon.org).

If you find yourself using the app quite a bit, please consider chipping in to cover the hosting costs. Right now I'm set up to receive contributions via GitHub Sponsors...any amount greatly appreciated.

Enjoy!


Copyright (c) Brian Skinn 2022

Website copy and docstrings are licensed under CC BY 4.0.

App code is released under the MIT License. See LICENSE.txt for full license terms.