Git Product home page Git Product logo

simple-inventory's Introduction

Simple Inventory

This is a simple tool for managing a product inventory: record purchased inventory, manage suppliers, view available stock, record sales, view analytics. It uses a bunch of a off-the-shelf software; the result is something that:

  • is better than using a spreadsheet;
  • is a lot less confusing than building/maintaining an something like an MS Access database;
  • provides consistency and promise.

I built this for a relative's small medical practice, which needed to replace an old Microsoft Works database. The functionality here is decidedly built-to-purpose, supporting existing, largely paper-based workflows.

Software

This is built with Python 3, Python-Flask, and Flask-Admin. The database is SQLite. It uses Twitter Bootstrap v3 for the GUI, and Chart.js for the charts in the analytics view.

Development Quickstart

To develop this project:

  1. Clone the repository:

    git clone https://github.com/gassc/simple-inventory.git
    cd simple-inventory
  2. Create and activate a virtual environment:

    python -m venv ENV

    bash

    source env/bin/activate

    windows

    ENV\Scripts\activate
  3. Install requirements:

    pip install -r requirements.txt

  4. Create the database (initial set-up only)

    python db_setup.py

  5. Run the application:

    Using the Flask development server, in browser: python run.py

    As a PyWebView Desktop application: python launch.py

Deployment (and Disclaimer)

My use case is absurdly simple and probably not useful for most folks: for me this needs to run on one computer used by a couple of people and give the appeareance of a desktop application. It is not exposed to the internet, and so lacks any security features in that regard (logins, protection from CSRF, etc).

PyWebView does the trick of making this run as a desktop application.

To-Do

The Issues list provides an overview of what's in store for this. Notably, issue 8 will provide some important missing functionality for any inventory software.

simple-inventory's People

Contributors

gassc avatar

Stargazers

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

Watchers

 avatar

simple-inventory's Issues

possible missing file

I Install the reqs and run the app but I always get an error saying that there are not X table on db. Is there any command missing on the codes like db.create_all()?

check product CRUD operations

Per staff, update made to price of product did not reflect after save. This is handled by flask-admin and should be OK...

tabulations

Build general sales summary.
Use list if no sale price.

handle rendering of text input in numeric fields

If app is unresponsive and entry is submitted multiple times rapidly, and there is no product, then the sale price trigger doesn't fire...so that column gets a value of null. The sale page tries to render each sale using a this as a value with a string formatter, but throws an error instead.

Orders & Inventory tables

Implement two new tables:

  • an Order table: for recording new stock that's been ordered/purchased for sale. This workflow for this table, as far as Flask-Admin is concerned will be similar to that of the Sale table.
  • an Inventory table: tabulate what products are in stock by populating the content of this table via triggers fired by inserts/updates to the Sale and Order tables.

Question(s) for test users:

  • how easiest to record purchased stock? by unit price (so, total cost is that * quantity), or invoice price (so, decoupling list price from purchase price; may be case for bulk orders).

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.