Skip to main content

Web based management to catalog things including state and location etc. using Python/Django.

Project description

Web based management to catalog things including state and location etc. using Python/Django.

Current status: Just start the project. Nothing is done, nothing is useable, yet ;)

Pull requests welcome!

Build Status on github

github.com/jedie/PyInventory/actions

Build Status on travis-ci.org

travis-ci.org/jedie/PyInventory

Coverage Status on codecov.io

codecov.io/gh/jedie/PyInventory

Coverage Status on coveralls.io

coveralls.io/r/jedie/PyInventory

Status on landscape.io

landscape.io/github/jedie/PyInventory/master

about

The focus of this project is on the management of retro computing hardware.

Plan:

  • Web-based

  • Multiuser ready

  • Chaotic warehousing

    • Grouped “Storage”: Graphics card is in computer XY

  • Data structure kept as general as possible

  • You should be able to add the following to the items:

    • Storage location

    • State

    • Pictures

    • URLs

    • receiving and delivering (when, from whom, at what price, etc.)

    • Information: Publicly visible yes/no

  • A public list of existing items (think about it, you can set in your profile if you want to)

  • administration a wish & exchange list

any many more… ;)

install

There exists two kind of installation/usage:

  • local virtualenv (without docker)

  • production use with docker-compose

see below

prepare

~$ git clone https://github.com/jedie/PyInventory.git
~$ cd PyInventory
~/PyInventory$ make
help                 List all commands
install-poetry       install or update poetry
install              install PyInventory via poetry
manage-update        Collectstatic + makemigration + migrate
update               update the sources and installation
lint                 Run code formatters and linter
fix-code-style       Fix code formatting
tox-listenvs         List all tox test environments
tox                  Run pytest via tox with all environments
tox-py36             Run pytest via tox with *python v3.6*
tox-py37             Run pytest via tox with *python v3.7*
tox-py38             Run pytest via tox with *python v3.8*
pytest               Run pytest
update-rst-readme    update README.rst from README.creole
publish              Release new version to PyPi
run-dev-server       Run the django dev server in endless loop.
messages             Make and compile locales message files
run-server           Run the gunicorn server in endless loop.
backup               Backup everything
create-starter       Create starter file.
install-compose      Install "docker-compose", too
up                   Start containers via docker-compose
down                 Stop all containers
prune                Cleanup docker
build                Update docker container build
logs                 Display docker logs from all containers
dbbackup             Backup database
dbrestore            Restore a database backup
restart              Restart all containers

local install without docker

# install or update poetry:
~/PyInventory$ make install-poetry

# install PyInventory via poetry:
~/PyInventory$ make install
...

# Collectstatic + makemigration + migrate:
~/PyInventory$ make manage-update

# Create a django super user:
~/PyInventory$ ./manage.sh createsuperuser

# start local dev. web server:
~/PyInventory$ make run-dev-server

The web page is available via: http://127.0.0.1:8000/

docker-compose usage

Install docker, e.g.: https://docs.docker.com/engine/install/ubuntu/

# Install "docker-compose" via poetry extras:
~/PyInventory$ make install-compose

Create a .env file with these content, e.g.:

# Public domain or "localhost" for local testing:
HOSTNAME=localhost

# eMail address for Let's encrypt (Use "internal" for self signed https certificates):
LETSENCRYPT_EMAIL=internal

e.g. in production:

HOSTNAME=domain.tld
LETSENCRYPT_EMAIL=webmaster@domain.tld

Start containers via docker-compose:

~/PyInventory$ make up

Notes: At the first start it takes a little while until the database is created

Create first super user:

~/PyInventory$ make docker_createsuperuser

Screenshots

PyInventory v0.2.0 screenshot 1.png


PyInventory v0.1.0 screenshot 2.png


PyInventory v0.1.0 screenshot 3.png


Multi user usage

PyInventory supports multiple users. The idea:

  • Every normal user sees only his own created database entries

  • All users used the Django admin

Note: All created Tags are shared for all existing users!

So setup a normal user:

  • Set “Staff status”

  • Unset “Superuser status”

  • Add user to “normal_user” group

  • Don’t add any additional permissions

e.g.:

normal user example

Backwards-incompatible changes

Nothing, yet ;)

history

  • compare v0.2.0…master dev

    • tbc

  • v0.3.0 - 26.10.2020

    • setup production usage:

      • Use caddy server as reverse proxy

      • Use uWSGI as application server

      • autogenerate secret.txt file for settings.SECRET_KEY

      • Fix settings

    • split settings for local development and production use

    • Bugfix init: move “setup user group” from checks into “post migrate” signal handler

    • Bugfix for using manage commands dumpdata and loaddata

  • v0.2.0 - 24.10.2020

    • Simplify item change list by nested item

    • Activate Django-Import/Export

    • Implement multi user usage

    • Add Django-dbbackup

    • Add docker-compose usage

  • v0.1.0 - 17.10.2020

    • Enhance models, admin and finish project setup

  • v0.0.1 - 14.10.2020

    • Just create a pre-alpha release to save the PyPi package name ;)

donation


Note: this file is generated from README.creole 2020-10-26 17:56:17 with "python-creole"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyInventory-0.3.0.tar.gz (35.6 kB view details)

Uploaded Source

Built Distribution

PyInventory-0.3.0-py3-none-any.whl (41.4 kB view details)

Uploaded Python 3

File details

Details for the file PyInventory-0.3.0.tar.gz.

File metadata

  • Download URL: PyInventory-0.3.0.tar.gz
  • Upload date:
  • Size: 35.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for PyInventory-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9416d34e95f0c2ba9d016a6362f70fbb0327d2536f337d227004849263a81b8c
MD5 10d86a7f550b6e0d15127bc23c5fd04f
BLAKE2b-256 7eada29ad79474c284e8e2c002706d8053bd574a7a325a4e62eac1a4dc88d7f8

See more details on using hashes here.

File details

Details for the file PyInventory-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: PyInventory-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 41.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for PyInventory-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b62fc1c7e37624105d0023a4f6391146626d0aed3a3235b0ba6d05d6be4e32ef
MD5 a06efb564fbbb773fd5f87d0278f7cb6
BLAKE2b-256 8920b1c129699e766d5e054db93035c228e62f4e85d277c410a24fb49bf17e8d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page