Automated Action d340d37ac9 Create Small Business Inventory Management System API
- Set up project structure with FastAPI and SQLite
- Create database models for inventory management
- Set up SQLAlchemy and Alembic for database migrations
- Create initial database migrations
- Implement CRUD operations for products, categories, suppliers
- Implement stock movement tracking and inventory management
- Add authentication and user management
- Add API endpoints for all entities
- Add health check endpoint
- Update README with project information and usage instructions
2025-05-23 11:56:20 +00:00
2025-05-23 11:44:35 +00:00

Small Business Inventory Management System

A RESTful API for small business inventory management built with FastAPI and SQLite.

Features

  • User Authentication: Secure login and role-based access control
  • Product Management: Add, update, and remove products with detailed information
  • Category and Supplier Management: Organize products by categories and suppliers
  • Inventory Tracking: Monitor stock levels and receive alerts for low stock
  • Stock Movement Tracking: Record purchases, sales, returns, and inventory adjustments
  • Search Functionality: Search for products, categories, and suppliers

Technical Stack

  • Backend: FastAPI (Python)
  • Database: SQLite
  • ORM: SQLAlchemy
  • Migrations: Alembic
  • Authentication: JWT (JSON Web Tokens)

API Endpoints

Authentication

  • POST /api/v1/login/access-token - Get access token
  • POST /api/v1/login/test-token - Test token validity

Users

  • GET /api/v1/users/ - List all users (admin only)
  • POST /api/v1/users/ - Create a new user (admin only)
  • GET /api/v1/users/me - Get current user information
  • PUT /api/v1/users/me - Update current user information
  • GET /api/v1/users/{user_id} - Get specific user information
  • PUT /api/v1/users/{user_id} - Update specific user (admin only)

Products

  • GET /api/v1/products/ - List all products
  • POST /api/v1/products/ - Create a new product
  • GET /api/v1/products/{product_id} - Get specific product
  • PUT /api/v1/products/{product_id} - Update specific product
  • DELETE /api/v1/products/{product_id} - Delete specific product (admin only)
  • GET /api/v1/products/by-category/{category_id} - Get products by category
  • GET /api/v1/products/by-supplier/{supplier_id} - Get products by supplier
  • GET /api/v1/products/search/ - Search products
  • GET /api/v1/products/low-stock/ - Get products with low stock

Categories

  • GET /api/v1/categories/ - List all categories
  • POST /api/v1/categories/ - Create a new category
  • GET /api/v1/categories/{category_id} - Get specific category
  • PUT /api/v1/categories/{category_id} - Update specific category
  • DELETE /api/v1/categories/{category_id} - Delete specific category (admin only)
  • GET /api/v1/categories/search/ - Search categories

Suppliers

  • GET /api/v1/suppliers/ - List all suppliers
  • POST /api/v1/suppliers/ - Create a new supplier
  • GET /api/v1/suppliers/{supplier_id} - Get specific supplier
  • PUT /api/v1/suppliers/{supplier_id} - Update specific supplier
  • DELETE /api/v1/suppliers/{supplier_id} - Delete specific supplier (admin only)
  • GET /api/v1/suppliers/search/ - Search suppliers

Stock Movements

  • GET /api/v1/stock-movements/ - List all stock movements
  • POST /api/v1/stock-movements/ - Create a new stock movement
  • GET /api/v1/stock-movements/{stock_movement_id} - Get specific stock movement
  • GET /api/v1/stock-movements/by-product/{product_id} - Get stock movements by product
  • GET /api/v1/stock-movements/by-type/{movement_type} - Get stock movements by type

Health Check

  • GET /health - Check API health status

Installation and Setup

  1. Clone the repository:

    git clone <repository-url>
    cd smallbusinessinventorymanagementsystem
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run the application:

    uvicorn main:app --reload
    
  4. Access the API documentation:

Database Migrations

Initialize and apply database migrations:

alembic upgrade head

Creating a Superuser

To create an admin user, use the following API endpoint:

POST /api/v1/users/

With the payload:

{
  "email": "admin@example.com",
  "username": "admin",
  "password": "your-secure-password",
  "is_superuser": true
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Description
Project: Small Business Inventory Management System
Readme 54 KiB
Languages
Python 99.1%
Mako 0.9%