Automated Action 4a875f5f83 Fix database migration error with proper Python path configuration
- Added Python path configuration in migrations/env.py to correctly import app modules
- Fixed SQLite database path configuration
- Fixed migration revision ID format
- Added proper error handling for imports

Generated with BackendIM... (backend.im)
2025-05-12 13:00:10 +00:00

Small Business Inventory Management System

A comprehensive inventory management API built with FastAPI and SQLAlchemy for small businesses. This API provides functionality to manage products, inventory, suppliers, and purchases.

Features

  • Product Management: CRUD operations for products and categories
  • Inventory Management: Track inventory levels across multiple locations
  • Supplier Management: Manage suppliers and their contact information
  • Purchase Management: Create and track purchase orders
  • Transaction Tracking: Record and track inventory movements (sales, purchases, transfers, adjustments)
  • Stock Alerts: Monitor low-stock items

Tech Stack

  • FastAPI: High-performance web framework for building APIs
  • SQLAlchemy: SQL toolkit and ORM
  • Pydantic: Data validation and settings management
  • Alembic: Database migration tool
  • SQLite: Lightweight database

Getting Started

Prerequisites

  • Python 3.8+
  • pip

Installation

  1. Clone the repository
git clone <repository-url>
cd smallbusinessinventorymanagementsystem
  1. Install dependencies
pip install -r requirements.txt
  1. Run the application
uvicorn main:app --reload
  1. Access the API documentation at http://localhost:8000/docs

API Endpoints

The API is organized around the following main resources:

Products & Categories

  • GET /api/v1/products/: List all products

  • POST /api/v1/products/: Create a new product

  • GET /api/v1/products/{product_id}: Get product details

  • PUT /api/v1/products/{product_id}: Update a product

  • DELETE /api/v1/products/{product_id}: Delete a product

  • GET /api/v1/categories/: List all categories

  • POST /api/v1/categories/: Create a new category

  • GET /api/v1/categories/{category_id}: Get category details

  • PUT /api/v1/categories/{category_id}: Update a category

  • DELETE /api/v1/categories/{category_id}: Delete a category

Inventory Management

  • GET /api/v1/inventory/: List inventory items

  • POST /api/v1/inventory/: Create inventory item

  • GET /api/v1/inventory/{item_id}: Get inventory item details

  • PUT /api/v1/inventory/{item_id}: Update inventory item

  • DELETE /api/v1/inventory/{item_id}: Delete inventory item

  • GET /api/v1/locations/: List all locations

  • POST /api/v1/locations/: Create a new location

  • GET /api/v1/locations/{location_id}: Get location details

  • PUT /api/v1/locations/{location_id}: Update a location

  • DELETE /api/v1/locations/{location_id}: Delete a location

  • GET /api/v1/inventory-transactions/: List inventory transactions

  • POST /api/v1/inventory-transactions/: Create inventory transaction

  • GET /api/v1/inventory-transactions/{transaction_id}: Get transaction details

Suppliers & Purchases

  • GET /api/v1/suppliers/: List all suppliers

  • POST /api/v1/suppliers/: Create a new supplier

  • GET /api/v1/suppliers/{supplier_id}: Get supplier details

  • PUT /api/v1/suppliers/{supplier_id}: Update a supplier

  • DELETE /api/v1/suppliers/{supplier_id}: Delete a supplier

  • GET /api/v1/purchases/: List all purchases

  • POST /api/v1/purchases/: Create a new purchase

  • GET /api/v1/purchases/{purchase_id}: Get purchase details

  • PUT /api/v1/purchases/{purchase_id}: Update a purchase

  • DELETE /api/v1/purchases/{purchase_id}: Delete a purchase

  • POST /api/v1/purchases/{purchase_id}/receive: Receive purchase into inventory

System

  • GET /health: Check API health status

Database Schema

The system uses the following main data models:

  • Product: Base product information (name, SKU, price, etc.)
  • Category: Product categories
  • Location: Inventory storage locations (warehouses, stores)
  • InventoryItem: Product stock at a specific location
  • InventoryTransaction: Record of inventory movements
  • Supplier: Supplier information
  • Purchase: Purchase orders from suppliers

Development

Database Migrations

The project uses Alembic for database migrations:

# Generate a new migration
alembic revision -m "description"

# Run migrations
alembic upgrade head

# Rollback migration
alembic downgrade -1
Description
Project: Small Business Inventory Management System
Readme 60 KiB
Languages
Python 99.3%
Mako 0.7%