2025-06-20 09:53:25 +00:00

117 lines
3.3 KiB
Markdown

# Small Business Inventory System
A comprehensive FastAPI-based inventory management system designed for small businesses to track products, manage stock levels, and monitor supplier relationships.
## Features
- **Product Management**: Complete CRUD operations for products with SKU tracking
- **Category Management**: Organize products into categories
- **Supplier Management**: Track supplier information and relationships
- **Inventory Tracking**: Real-time stock level monitoring with low-stock alerts
- **Stock Movements**: Track all inventory movements (IN/OUT/ADJUSTMENTS)
- **Reporting**: Stock reports and analytics
- **API Documentation**: Auto-generated OpenAPI documentation
## Quick Start
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Run the application:
```bash
uvicorn main:app --reload
```
3. Access the API documentation at: `http://localhost:8000/docs`
## API Endpoints
### Products
- `GET /products/` - List all products (with filtering options)
- `POST /products/` - Create a new product
- `GET /products/{product_id}` - Get product by ID
- `GET /products/sku/{sku}` - Get product by SKU
- `PUT /products/{product_id}` - Update product
- `DELETE /products/{product_id}` - Delete product
### Categories
- `GET /categories/` - List all categories
- `POST /categories/` - Create a new category
- `GET /categories/{category_id}` - Get category by ID
- `PUT /categories/{category_id}` - Update category
- `DELETE /categories/{category_id}` - Delete category
### Suppliers
- `GET /suppliers/` - List all suppliers
- `POST /suppliers/` - Create a new supplier
- `GET /suppliers/{supplier_id}` - Get supplier by ID
- `PUT /suppliers/{supplier_id}` - Update supplier
- `DELETE /suppliers/{supplier_id}` - Delete supplier
### Inventory
- `POST /inventory/stock-movement` - Record stock movement
- `GET /inventory/stock-movements` - List stock movements
- `GET /inventory/low-stock` - Get low stock products
- `GET /inventory/stock-report` - Get stock analytics
- `PUT /inventory/adjust-stock/{product_id}` - Adjust stock levels
### System
- `GET /` - API information and links
- `GET /health` - Health check endpoint
## Database
The system uses SQLite database with the following storage structure:
- Database file: `/app/storage/db/db.sqlite`
## Environment Variables
No environment variables are required for basic operation. The system uses SQLite with default paths.
## Development
### Database Migrations
The project uses Alembic for database migrations:
```bash
# Run migrations
alembic upgrade head
# Create new migration
alembic revision --autogenerate -m "description"
```
### Code Quality
The project uses Ruff for linting and formatting:
```bash
# Install ruff
pip install ruff
# Run linting
ruff check .
# Auto-fix issues
ruff check . --fix
```
## Project Structure
```
├── main.py # FastAPI application entry point
├── requirements.txt # Python dependencies
├── alembic.ini # Alembic configuration
├── alembic/ # Database migrations
├── app/
│ ├── db/ # Database configuration
│ ├── models/ # SQLAlchemy models
│ ├── schemas/ # Pydantic schemas
│ └── routers/ # API route handlers
└── storage/
└── db/ # SQLite database storage
```