
- 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)
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
- Clone the repository
git clone <repository-url>
cd smallbusinessinventorymanagementsystem
- Install dependencies
pip install -r requirements.txt
- Run the application
uvicorn main:app --reload
- 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