# File Organization This document describes the organization of files in the ONVIF Go library project. ## Directory Structure ``` onvif-go/ ├── docs/ # Documentation │ ├── api/ # API documentation │ │ ├── DEVICE_API_STATUS.md │ │ ├── DEVICE_API_QUICKREF.md │ │ ├── CERTIFICATE_WIFI_SUMMARY.md │ │ ├── STORAGE_API_SUMMARY.md │ │ └── ADDITIONAL_APIS_SUMMARY.md │ ├── implementation/ # Implementation details │ │ ├── IMPLEMENTATION_COMPLETE.md │ │ ├── IMPLEMENTATION_STATUS.md │ │ ├── MEDIA_WSDL_OPERATIONS_ANALYSIS.md │ │ └── MEDIA_OPERATIONS_ANALYSIS.md │ ├── testing/ # Testing documentation │ │ ├── COMPREHENSIVE_TEST_SUMMARY.md │ │ ├── CAMERA_TEST_REPORT.md │ │ ├── CAMERA_TESTING_FLOW.md │ │ ├── DEVICE_API_TEST_COVERAGE.md │ │ └── COVERAGE_SETUP.md │ ├── README.md # Documentation index │ ├── ARCHITECTURE.md │ ├── PROJECT_SUMMARY.md │ ├── PROJECT_STRUCTURE.md │ └── ... (other docs) │ ├── test-reports/ # Test reports (JSON) │ ├── README.md │ └── camera_test_report_*.json │ ├── examples/ # Example programs │ ├── test-real-camera-all/ # Comprehensive camera testing │ ├── device-info/ │ ├── discovery/ │ └── ... (other examples) │ ├── testdata/ # Test data │ └── captures/ # Captured SOAP responses │ ├── cmd/ # Command-line tools │ ├── onvif-cli/ │ ├── onvif-diagnostics/ │ └── ... │ ├── server/ # ONVIF server implementation │ ├── discovery/ # Discovery functionality │ ├── internal/ # Internal packages │ └── soap/ # SOAP client │ ├── testing/ # Testing utilities │ ├── *.go # Core library files ├── *_test.go # Test files ├── README.md # Main README ├── CHANGELOG.md # Version history ├── CONTRIBUTING.md # Contribution guidelines ├── BUILDING.md # Build instructions └── LICENSE # License file ``` ## File Categories ### Root Directory - **Core library files** (`*.go`) - Main implementation files - **Test files** (`*_test.go`) - Unit and integration tests - **Essential documentation** - README.md, CHANGELOG.md, CONTRIBUTING.md, BUILDING.md, LICENSE ### Documentation (`docs/`) - **API Documentation** (`docs/api/`) - API reference and status documents - **Implementation Details** (`docs/implementation/`) - Implementation analysis and status - **Testing Documentation** (`docs/testing/`) - Test reports and coverage information - **General Documentation** (`docs/`) - Architecture, guides, and other documentation ### Test Reports (`test-reports/`) - JSON files containing test results from real camera testing - Automatically generated by `examples/test-real-camera-all/main.go` - Named with pattern: `camera_test_report_{Manufacturer}_{Model}_{Timestamp}.json` ### Examples (`examples/`) - Example programs demonstrating library usage - Organized by functionality (discovery, device-info, PTZ, etc.) ### Test Data (`testdata/`) - Captured SOAP responses from real cameras - Used for unit testing without camera connectivity ## File Naming Conventions ### Documentation Files - **UPPERCASE_WITH_UNDERSCORES.md** - Main documentation files - **README.md** - Directory indexes ### Test Files - **{module}_test.go** - Standard Go test files - **{module}_real_camera_test.go** - Tests using real camera data ### Report Files - **camera_test_report_{manufacturer}_{model}_{timestamp}.json** - Test reports ## Maintenance ### Adding New Documentation 1. **API Documentation** → `docs/api/` 2. **Implementation Details** → `docs/implementation/` 3. **Testing Documentation** → `docs/testing/` 4. **General Documentation** → `docs/` ### Generating Test Reports Run `examples/test-real-camera-all/main.go` - reports are automatically saved to `test-reports/` ### Updating Documentation Index Update `docs/README.md` when adding new documentation files. --- *Last Updated: December 2, 2025*