Skip to content

The Inventory Management System is a Python-based application designed to streamline the management of inventory.

Notifications You must be signed in to change notification settings

abstra-app/template-inventory-management-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inventory Management System

How It Works

This project includes an inventory management system implemented with Abstra and Python scripts. The system's capabilities include adding, updating, and deleting inventory items, processing expenses, and managing equipment loans. The system integrates with Docusign for document signing and makes use of a custom google_utils module for uploading data to Google Drive.

Integrations:

  • Docusign
  • Google drive
  • Pandoc

To customize this template for your team and build a lot more, book a demonstration here.

An inventory management system workflow built using Abstra

Initial Configuration

To use this project, some initial configurations are necessary:

  1. Python Version: Ensure Python version 3.9 or higher is installed on your system.

  2. Integrations: To connect to Google Drive and DocuSign, this template uses Abstra connectors. To connect, simply open your project in Abstra Cloud Console, add the Google Drive and DocuSign connectors, and authorize them.

  3. Environment Variables: The following environment variables are required for both local development and online deployment:

    • GOOGLE_DRIVE_INVOICES_FOLDER: Your Google Drive folder ID for invoices.
    • DOCUSIGN_WEBHOOK_SECRET: Secret key for DocuSign webhook verification.
    • COMPANY_SIGNER_NAME: Name of the company signer
    • COMPANY_SIGNER_EMAIL: Email of the company signer
    • DOCUSIGN_API_ID: API ID for DocuSign
    • DOCUSIGN_AUTH_SERVER: Authentication server URL for DocuSign
    • API_BASE_PATH: Base path for the DocuSign API
    • GOOGLE_DRIVE_EQUIPMENTS_CONTRACTS_DOCUMENT_FOLDER: Your Google Drive folder ID for signed contracts.

    For local development, create a .env file at the root of the project and add the variables listed above (refer to .env.example). For online deployment, configure these variables in your environment settings.

  4. Dependencies: To install the necessary dependencies for this project, a requirements.txt file is provided. This file includes all the required libraries.

    Follow these steps to install the dependencies:

    1. Open your terminal and navigate to the project directory.

    2. Run the following command to install the dependencies from requirements.txt:

      pip install -r requirements.txt
    3. Install Pandoc. To test it locally, you need to install Pandoc. You can do this through various package managers depending on your operating system. Detailed installation instructions are available in the Pandoc documentation.

  5. Access Control: The generated form is protected by default. For local testing, no additional configuration is necessary. However, for cloud usage, you need to add your own access rules. For more information on how to configure access control, refer to the Abstra access control documentation.

  6. Database Configuration: Set up your database tables in Abstra Cloud Tables according to the schema defined in abstra-tables.json.

    To automatically create the table schema, follow these steps:

    1. Open your terminal and navigate to the project directory.

    2. Run the following command to install the table schema from abstra-tables.json:

      abstra restore

    For guidance on creating and managing tables in Abstra, refer to the Abstra Tables documentation.

  7. Local Usage: To access the local editor with the project, use the following command:

       abstra editor path/to/your/project/folder/

General Workflows

To interact with the inventory system (add, update, delete items), process expenses, and manage equipment loans, use the following scripts:

Inventory Item Registration

For registering inventory items, use the scripts:

  • inventory_item_registration.py: Main script for registering inventory items.
  • inventory_item_registration_data_processing.py: Script responsible for processing inventory item data.

Equipment Loan

For managing equipment loans, where a liability statement is generated and sent for signing, use:

  • equipment_loan.py: Script to manage equipment loans.
  • generate_liability_statement.py: Script to generate the liability statement. The model for building this document is saved in Liability Statement for Loaned Equipment Model.docx.
  • sending_equipment_loan_to_sign.py: Script to send the liability statement for signing.

Equipment Loan Return

For managing the return of loaned equipment, use:

  • equipment_loan_return.py: Script to manage equipment returns.

Depreciation Calculation

For calculating the monthly depreciation of all equipment, use:

  • depreciation_calculation.py: Script to calculate monthly depreciation.

Handling Signed Liability Statements

For processing and handling the signed liability statements received via webhooks, use:

  • process_signed_liability_statement.py: Script to download and upload signed liability statements to Google Drive.

If you're interested in customizing this template for your team in under 30 minutes, book a customization session here.

About

The Inventory Management System is a Python-based application designed to streamline the management of inventory.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages