GithubHelp home page GithubHelp logo

mpkasp / indabom Goto Github PK

View Code? Open in Web Editor NEW
21.0 6.0 9.0 2.71 MB

bill of materials management system using the django-bom app

Home Page: https://indabom.com

License: MIT License

Python 36.34% HTML 57.76% CSS 5.20% Shell 0.20% Dockerfile 0.50%

indabom's Introduction

indabom

A simple bill of materials web app using django-bom.

  • Master parts list with indented bill of materials
  • Octopart price matching
  • BOM Cost reporting, with sourcing recommendations

Stripe

To sync models, call python manage.py djstripe_sync_models Need to use 2.4.1 due to this issue Test stripe using this card info.

MacOS Install

If issues installing mysqlclient on Apple Silicon MacOS try:

$ export MYSQLCLIENT_LDFLAGS=$(pkg-config --libs mysqlclient)
$ export MYSQLCLIENT_CFLAGS=$(pkg-config --cflags mysqlclient)
$ pip install mysqlclient

Deploying

Secrets are managed through GCP Secret Manager. To update secrets for a respective environment run:

gcloud secrets versions add django_settings_dev --data-file=.env.dev
gcloud secrets versions add django_settings --data-file=.env.prod

Build and deploy is run automagically using GCP Cloud Build. (We tried github actions, but had trouble finding a way to run management commands thru cloud run on github actions.)

indabom's People

Contributors

dependabot[bot] avatar mpkasp avatar

Stargazers

 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

indabom's Issues

Manufacturing & Inventory & API

Hi Mike,
we are looking for a simple Django-based tool to manage our BOMs, however I have a few questions to ask as there is very limited documentation here:

  1. Is there a possibility to create a super-easy inventory interface? That is - upload a delivery note (in CSV lets say) and have the inventory of parts updated in terms how many units of each pars are available in stock?

  2. Is there a way to create a "manufacturing order" - that is - lets say we have this product which contains 300+ electronic parts including plastic parts and sub assemblies etc - is there a way to klick "Im now making 100 units of this product" and Idabom will check which parts are in stock, which need to be bought or 3d printed / manufactured ...

Doing this using API would be absolutely awesome since we can integrate this with KiCad and some other applications to have a working inventory systems for KiCad assemblies and parent products.

I have more ideas here, but really cannot contribute time to this. Thigs like variations of the same product and its different BOMs etc.

Auto-complete during 'Edit BOM'

To help with usability, an auto search or auto complete for adding new items to a BOM would make it much faster and easier to create BOM structures. Without this, one needs to already know all of their part numbers beforehand which means they basically already need a bom in front of them

total weight

Hi,

First off all thanks for sharing this great project
Is it somehow possible to get the total weight off all assembled parts and subpart?
It would be nice if you could get the weight of the assembled parts like the total costs

thx for you help

IndaBOM Installation

Hi there,

Firstly, I am NOT a developer, and therefore not to clever when it comes to django. I am however an infrastructre person, and do understand operating systems etc.

I ran IndaBOM on your server to validate the functionality, and it is really what I wanted all along, however, I simply cannot get it to run, as the instructions are a bot confusing.

I have a complete clean machine, with Ubuntu 18.04.

What are the step by step instructions to install IndaBOM on this machine please!!!!

What are the pre-requisites? (mysql, java, .......)

Then how to get Instabom running to be the same as on your cloud site.

I would really appreciate the help, as follwing the instruction you provided, sdoes NOT result in a running application.

Thanks
Louis

Part number syntax

Hello everyone, I'm looking for a way to modify the part number syntax in order to better customize this platform to my needs. Take into account that every business has its own way to code parts, so I suppose that it'd be useful to provide a config file where you can decide your own part number syntax, going beyond the predefined structure which mainly fits to the electronics scope.

"bom_usermeta" does not exist

I have progressed from issue #2, however this issue may be a side affect of not running these migrations??

Is there an assumed seeded DB for this to work standalone? I.e. do you have a script which creates the tables required that you run before a new deployment (or more likely, it is a live system, therefore you can assume all required tables have already been created)??

When on the main page, clicking signup, then submit I get the following (very similar error when clicking on indabom logo top left):

Request Method: | GET
-- | --
http://10.0.75.1:8000/bom/
1.10.5
ProgrammingError
relation "bom_usermeta" does not exist LINE 1: ...ta"."organization_id", "bom_usermeta"."role" FROM "bom_userm...                                                              ^
/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py in execute, line 64
/usr/local/bin/python
2.7.14
['/src',  '/usr/local/lib/python27.zip',  '/usr/local/lib/python2.7',  '/usr/local/lib/python2.7/plat-linux2',  '/usr/local/lib/python2.7/lib-tk',  '/usr/local/lib/python2.7/lib-old',  '/usr/local/lib/python2.7/lib-dynload',  '/usr/local/lib/python2.7/site-packages']
Wed, 28 Feb 2018 06:16:23 +0000

More details traceback:

Environment:


Request Method: GET
Request URL: http://10.0.75.1:8000/bom/

Django Version: 1.10.5
Python Version: 2.7.14
Installed Applications:
['indabom',
 'bom.apps.BomConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sitemaps',
 'raven.contrib.django.raven_compat']
Installed Middleware:
[u'raven.contrib.django.middleware.SentryMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/usr/local/lib/python2.7/site-packages/bom/views.py" in home
  28.     profile = request.user.bom_profile()

File "/usr/local/lib/python2.7/site-packages/bom/models.py" in _user_meta
  34.             'organization': organization})[0]

File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in get_or_create
  473.             return self.get(**lookup), False

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in get
  379.         num = len(clone)

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in __len__
  238.         self._fetch_all()

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all
  1087.             self._result_cache = list(self.iterator())

File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in __iter__
  54.         results = compiler.execute_sql()

File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  835.             cursor.execute(sql, params)

File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/usr/local/lib/python2.7/site-packages/raven/contrib/django/client.py" in execute
  114.             return real_execute(self, sql, params)

File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/usr/local/lib/python2.7/site-packages/django/db/utils.py" in __exit__
  94.                 six.reraise(dj_exc_type, dj_exc_value, traceback)

File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

Exception Type: ProgrammingError at /bom/
Exception Value: relation "bom_usermeta" does not exist
LINE 1: ...ta"."organization_id", "bom_usermeta"."role" FROM "bom_userm...
                                                             ^

KeyError at /bom/

Hi there,

I am looking forward to testing indabom as it seems like a great product and fits my needs.

I am not a developer and have limited coding experience. I have followed the instructions, watch the video and get an error at the end after setting up my organization. Below is the text i get.

Looking forward to your feedback, thank you.
Screenshot 2023-04-26 at 19 46 34

Traceback (most recent call last):
File "/Users/ludoroche/repos/inda_bom/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request)
File "/Users/ludoroche/repos/inda_bom/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/ludoroche/repos/inda_bom/venv/lib/python3.10/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view return view_func(request, *args, **kwargs)
File "/Users/ludoroche/repos/inda_bom/venv/lib/python3.10/site-packages/bom/views/views.py", line 146, in home
enable_autocomplete = settings.BOM_CONFIG['admin_dashboard']['enable_autocomplete']

Exception Type: KeyError at /bom/
Exception Value: 'admin_dashboard'

A corrupt component page is causing issues - user has no method to fix it.

Hi Mike,

410-0001-00 within my orgs database is corrupted somehow. Clicking it simply leads to the "Bummer" page. This is corrupting all the next level up assemblies.

I have no way of deleting and remaking the part. I have no way of removing the corrupted part from next level up assemblies either as their pages are corrupted as well. I'm really hoping you can address this somehow, even if it does mean just deleting the component.

Otherwise my only alternative is to make a new part number for not only the component but all the next level up assemblies as well. This will require corresponding CAD part number changes too which is kind of a pain.

Any help would be appreciated.

Cheers

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.