update databasing system with minimum API, schema parsing and FreeCAD
integration
This commit is contained in:
76
README.md
76
README.md
@@ -0,0 +1,76 @@
|
||||
# Silo
|
||||
|
||||
Item database and part management system for FreeCAD.
|
||||
|
||||
## Overview
|
||||
|
||||
Silo is an R&D-oriented item database with:
|
||||
|
||||
- **Configurable part number generation** via YAML schemas
|
||||
- **FreeCAD integration** with git-like commands (checkout, commit, status)
|
||||
- **Revision tracking** with append-only history
|
||||
- **BOM management** with reference designators and alternates
|
||||
- **Physical inventory** tracking with hierarchical locations
|
||||
|
||||
## Components
|
||||
|
||||
```
|
||||
silo/
|
||||
├── cmd/
|
||||
│ ├── silo/ # CLI tool
|
||||
│ └── silod/ # API server
|
||||
├── internal/
|
||||
│ ├── config/ # Configuration loading
|
||||
│ ├── db/ # PostgreSQL access
|
||||
│ ├── schema/ # YAML schema parsing
|
||||
│ ├── storage/ # MinIO file storage
|
||||
│ ├── partnum/ # Part number generation
|
||||
│ ├── inventory/ # Location and stock management
|
||||
│ └── api/ # HTTP handlers
|
||||
├── pkg/
|
||||
│ └── freecad/ # FreeCAD workbench (Python)
|
||||
├── web/
|
||||
│ ├── templates/ # HTML templates
|
||||
│ └── static/ # CSS, JS assets
|
||||
├── migrations/ # Database migrations
|
||||
├── schemas/ # Example YAML schemas
|
||||
└── docs/ # Documentation
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Database setup
|
||||
psql -h psql.kindred.internal -U silo -d silo -f migrations/001_initial.sql
|
||||
|
||||
# Configure
|
||||
cp config.example.yaml config.yaml
|
||||
# Edit config.yaml with your settings
|
||||
|
||||
# Run server
|
||||
go run ./cmd/silod
|
||||
|
||||
# CLI usage
|
||||
go run ./cmd/silo register --schema kindred-rd --project PROTO --type AS
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
See `config.example.yaml` for all options.
|
||||
|
||||
## FreeCAD Integration
|
||||
|
||||
Install the workbench:
|
||||
|
||||
```bash
|
||||
ln -s $(pwd)/pkg/freecad ~/.local/share/FreeCAD/Mod/Silo
|
||||
```
|
||||
|
||||
Then in FreeCAD:
|
||||
- `silo checkout PROTO-AS-0001`
|
||||
- `silo commit -m "Updated dimensions"`
|
||||
- `silo status`
|
||||
|
||||
## License
|
||||
|
||||
Proprietary - Kindred Systems LLC
|
||||
|
||||
Reference in New Issue
Block a user