inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.22k stars 760 forks source link

Online demo instance #1280

Closed ivladz closed 2 years ago

ivladz commented 3 years ago

Hello, I've came across this project while looking for an alternative to Partkeepr. From the documentation it looks like what I was looking for, but a demo would go a long way to determine that.

Have you considered having a demo instance with a populated database? (or at least a demo video)

dsalychev commented 3 years ago

Hi! I've just finished installing InvenTree on my server with Apache. I could make several screenshots for you. EDIT: Or I could even record a short demo.

SchrodingersGat commented 3 years ago

@ivladz it is something I plan to do but have not implemented yet. I'm not sure how this would be hosted or managed. But I certainly agree it would be a useful thing for potential new users who want to try it out...

eeintech commented 3 years ago

@SchrodingersGat I thought of this too. I rent a server and have a domain I use for my own little projects. I was thinking to use a subdomain to create a demo instance of InvenTree. My main debate about it was between keeping it read-only vs some write access. Write access will create a bit of maintenance headache but will surely be more useful for a demo.

The initial dataset is also in question... Oriented electrical? Mechanical? Bookstore? The test fixtures could be used to populate initial data. What do you think?

ivladz commented 3 years ago

@dsalychev Thanks, I managed to get it working in a VM to test it out before setting up a more permanent solotion. However, a short demo would be great for new users looking for such solution.

@SchrodingersGat Good that it is planned.. I know there must be a lot of work to do on the list. Great job on this project!

One potential way to go is to have the demo instance automatically rebuild every X hours with a dataset. There would be multiple benefits:

SchrodingersGat commented 3 years ago

@ivladz I do like the way that the PartKeepr demo works. I was thinking that re-setting the data every day or so would be a good way to prevent the dataset becoming corrupted.

And it would be a good exercise for setting up a more complex installation, too.

eeintech commented 3 years ago

Hey guys- Just throwing it here to know what you think:

The loaded data is from the test fixtures.

SchrodingersGat commented 3 years ago

Nice @eeintech :)

The potential complications that spring to mind:

eeintech commented 3 years ago

@SchrodingersGat

  • What back-end are you using to serve the data (e.g. gunicorn / etc)
  • What hosting service (any difficulty getting the InvenTree instance setup?)

It's shared web hosting plan, the difficulty is to install a version of SQLite that is compatible with Django 3. I can also run a PostGreSQL databse there too (using it already for another website). I haven't tried and never used MySQL. It is served by Phusion Passenger web server, I think in combination with Nginx (it's based on cPanel installation package, I don't know the exact details but Passenger interface is the one used to manage Python instances).

The potential complications that spring to mind:

  • Creating a large enough interesting dataset (with pictures / etc) to be useful

I could spend a bit of time to create a set of electrical parts, using Ki-nTree (pulling pictures/part models from Digi-Key). Not sure how useful is that though, I think people really want to see the mechanics of InvenTree, but it would definitely look nice and do good publicity to both InvenTree and Ki-nTree 😛

  • Performing a "system reset" every day or so to ensure the data doesn't get messed around with too muhc

That's already the case, once per day, using a Cron job calling a script which does the following things:

  1. Update pip/invoke
  2. Pull latest from master
  3. Reset the database (using an image which has the superuser setup already)
  4. Run InvenTree update/migration
  5. Load test fixtures using manage.py script

I know this work as I created a part today and it's not there anymore (not sure exactly the timezone but it crossed midnight not a long ago).

eeintech commented 3 years ago

I'm wondering about concurrency though. Not sure how many people can login at the same time using the credentials I provided...

wengtad commented 3 years ago

This is consider a bug or? Looks like images and resources files will not load if the user is not login. image

SchrodingersGat commented 3 years ago

@wengtad @eeintech see fix in https://github.com/inventree/InvenTree/pull/1294

Great catch @wengtad

eeintech commented 3 years ago

Nice, should be fixed soon after the PR is merged 👍

SchrodingersGat commented 3 years ago

More than fixed!

image

wengtad commented 3 years ago

Nice, can't wait for the PR merge 👍

eeintech commented 3 years ago

Check it out: https://inventree.polarize.xyz/

SchrodingersGat commented 3 years ago

@eeintech looks fantastic! I 100% think that we should look at a demo instance as a "thing" for InvenTree.

I have started a new repo for a demo dataset - https://github.com/inventree/demo-dataset

This way we can work on the dataset separately from InvenTree code - the demo dataset will (I imagine) grow quite large to show off all the InvenTree features

eeintech commented 3 years ago

Nice idea 👍 However I'm not sure how we can make the demo-dataset easy-to-contribute to 🤔

Btw, I'm happy the way my demo interface is running right now, if you want to share it we can add it to the README maybe? Or we can wait for the dataset to build up.

fenugrec commented 3 years ago

Thanks for putting that demo online - nice sandbox to play in without any risk of permanent damage or harm P )

Connected right now, the server is not blazing fast of course but very acceptable. But is it normal for the main page to show those animated "waiting" icons for > 1 minute ? : demo_pending-crop

eeintech commented 3 years ago

@fenugrec Umm you're right, something is wrong... Will take a look.

SchrodingersGat commented 3 years ago

@eeintech that bug has been fixed in a recent commit - if you update the code it should be fixed

SchrodingersGat commented 3 years ago

Btw, I'm happy the way my demo interface is running right now, if you want to share it we can add it to the README maybe? Or we can wait for the dataset to build up.

I think we should get a better dataset up and running before we go "live" - and appreciate you hosting it!

wengtad commented 3 years ago

Question: About returned stock.

Not sure here is the right place to ask or should create an issue.

I'm using the demo to try out, purchased order from supplier and serialize all the stock with different serial number, then selling 2 of the stock items with serial number SN001 and SN002 to customer, but customer returned SN002 to me which will back to stock and choose a location (Office) to store. Question is could I assign SN002 to another customer? although it show the SN002 is at Office, but when I take a look on Office, it is not in the listing. Even I choose to assign to customer also cannot. image image

And if good the "allocate stock to order" able to support multi-select on dropdown. If the item is serialize then is single item with quantity 1, so every time have to change the quantity to 1.

Not sure am I use it in a correct way.

Thank you. :)

eeintech commented 3 years ago

Question is could I assign SN002 to another customer? although it show the SN002 is at Office, but when I take a look on Office, it is not in the listing. Even I choose to assign to customer also cannot.

I think there is some sort of bug, you should be able to assign the printer to another customer. But I don't know enough about this feature, so hope Oliver can chime in.

And if good the "allocate stock to order" able to support multi-select on dropdown. If the item is serialize then is single item with quantity 1, so every time have to change the quantity to 1.

Do you mean that you have to add the quantity one for each line item in a sales order?

image

Because in the "Allocate to order stock" form, the quantity is already 1 (as previously set):

image

Btw I pushed back the next "reset" of the database so we can help you work through this in the demo.

wengtad commented 3 years ago

@eeintech Thanks for your reply.

Do you mean that you have to add the quantity one for each line item in a sales order?

What I mean is quantity on Add Line Item is 2 or more, then when Allocate Stock to Order, I will have to change 2 to 1 in quantity field if I selected part is with serial number as shown on your comment. Because quantity for serialize item is always 1.

Therefore, I'm just ask if it could allow multi select on the dropdown or when choosing serialize item then the quantity auto become 1 or something even better. But this is not a very big issue, user still can just change from 2 to 1 and click Submit. Bringing this out just to trying to reduce steps of used.

eeintech commented 3 years ago

@wengtad I see. Why don't you create line items with quantity one each time? That way when you allocate it is already set to one. Yes you'll have to create multiple line items with the same part but I guess it would be the same that during allocation?

SchrodingersGat commented 3 years ago

@eeintech I've found an issue with the demo data that you are serving. Example here:

https://inventree.polarize.xyz/part/1/stock

Note that the "stock" instances do not all point to the correct part. I believe this is due to the "fixture" data being used..

Parts and variants are arranged in a tree - but the fixture data is pretty shambolic and does not observe the correct tree structure. To organize the tree correctly, you'll need to run:

from part.models import Part

Part.objects.rebuild()

The ideal solution here is to use a "proper" demo dataset!

eeintech commented 3 years ago

@SchrodingersGat Umm okay good point... not sure where to run this, given this needs to run in Django's environment. Better focus on a real dataset, agree.

SchrodingersGat commented 2 years ago

After much delay, an online demo is now available at https://demo.inventreedb.com

@eeintech @matmair can you guys please check it out and let me know if you see any issues?

Login details here - https://inventree.readthedocs.io/en/latest/start/demo/

I'll be adding a link to the demo instance from the docs server soon...

The demo server runs the inventree:latest docker image, and loads the demo-dataset data, and the database is reset daily.

It would be great to add a lot more demo data to the dataset, do better exemplify the available features...

Let me know what you guys think ;)

matmair commented 2 years ago

After much delay, an online demo is now available at https://demo.inventreedb.com

@eeintech @matmair can you guys please check it out and let me know if you see any issues?

Login details here - https://inventree.readthedocs.io/en/latest/start/demo/

I'll be adding a link to the demo instance from the docs server soon...

The demo server runs the inventree:latest docker image, and loads the demo-dataset data, and the database is reset daily.

It would be great to add a lot more demo data to the dataset, do better exemplify the available features...

Let me know what you guys think ;)

Are you running it on a small linode instance?

eeintech commented 2 years ago

Very nice! I don't see the online demo URL in the doc? :thinking:

SchrodingersGat commented 2 years ago

Are you running it on a small linode instance?

Yep!

Very nice! I don't see the online demo URL in the doc? 🤔

I wanted to check that it worked for you guys before linking it from the docs server. - https://github.com/inventree/inventree-docs/pull/209

fenugrec commented 2 years ago

Hm, just tried the demo right now, and for all user+pw combinations getting " The username and/or password you specified are not correct. "

SchrodingersGat commented 2 years ago

Please try again now

fenugrec commented 2 years ago

Please try again now

Works now, thanks !

eeintech commented 2 years ago

@SchrodingersGat @matmair

Just curious, do you know what happens when multiple users sign in to the same account? Does the latest signed in user will kick out previously logged in user?

matmair commented 2 years ago

@SchrodingersGat @matmair

Just curious, do you know what happens when multiple users sign in to the same account? Does the latest signed in user will kick out previously logged in user?

@eeintech you can open as many sessions as you want