Enhance README.md with badges, installation instructions, and community support details. Improved project structure and added quick contribution guidelines.

This commit is contained in:
defiQUG
2025-08-06 04:09:56 +00:00
parent c8fb525651
commit 9f9f217175
47 changed files with 14593 additions and 36 deletions

161
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,161 @@
---
name: Bug Report
about: Create a report to help us improve NowYouSeeMe
title: '[BUG] '
labels: ['bug', 'needs-triage']
assignees: ''
---
## 🐛 Bug Description
A clear and concise description of what the bug is.
## 🔄 Steps to Reproduce
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
## ✅ Expected Behavior
A clear description of what you expected to happen.
## ❌ Actual Behavior
A clear description of what actually happened.
## 📸 Screenshots
If applicable, add screenshots to help explain your problem.
## 🖥️ Environment
### System Information
- **OS**: [e.g., Ubuntu 20.04, Windows 10, macOS 12]
- **Python Version**: [e.g., 3.9.7]
- **CUDA Version**: [e.g., 11.6] (if applicable)
- **GPU**: [e.g., NVIDIA GTX 1060, RTX 3080]
### Hardware Information
- **Camera**: [e.g., Logitech C920, Built-in webcam]
- **WiFi Card**: [e.g., Intel 5300, Broadcom BCM4313]
- **RAM**: [e.g., 8GB, 16GB]
- **Storage**: [e.g., SSD, HDD]
### Software Information
- **NowYouSeeMe Version**: [e.g., 1.0.0, latest commit hash]
- **Installation Method**: [e.g., Docker, PyPI, Manual]
- **Dependencies**: [List any custom dependencies]
## 📋 Additional Context
Add any other context about the problem here, such as:
- When did this issue start occurring?
- Does it happen consistently or intermittently?
- Are there any error messages in the logs?
- Have you tried any workarounds?
## 📊 Performance Impact
- **Latency**: [e.g., Increased from 18ms to 50ms]
- **Accuracy**: [e.g., Reduced from 8cm to 25cm]
- **Frame Rate**: [e.g., Dropped from 45 FPS to 15 FPS]
- **CSI Rate**: [e.g., Reduced from 120 pkt/s to 30 pkt/s]
## 🔧 Debug Information
### Log Files
```bash
# Check application logs
tail -f logs/nowyouseeme.log
# Check system logs
dmesg | tail -20
# Check GPU status
nvidia-smi
```
### Configuration Files
```json
// camera_config.json
{
"camera": {
"device_id": 0,
"width": 1280,
"height": 720,
"fps": 30
}
}
```
```json
// csi_config.json
{
"csi": {
"interface": "wlan0",
"channel": 6,
"bandwidth": 20,
"packet_rate": 100
}
}
```
## 🧪 Reproduction Steps
### Minimal Reproduction
```python
# Minimal code to reproduce the issue
import cv2
import numpy as np
from src.ingestion.capture import CameraCapture
# Test camera capture
cap = CameraCapture(config)
frame = cap.get_frame()
print("Frame shape:", frame.shape if frame is not None else "None")
```
### Test Environment
- [ ] Fresh installation
- [ ] Clean virtual environment
- [ ] Different hardware configuration
- [ ] Different operating system
## 🔍 Investigation Steps
### What I've Tried
- [ ] Restarted the application
- [ ] Recalibrated camera and RF
- [ ] Updated dependencies
- [ ] Checked hardware connections
- [ ] Verified configuration files
- [ ] Ran in debug mode
### Debug Output
```
# Add any debug output or error messages here
```
## 📈 Impact Assessment
- **Severity**: [Critical/High/Medium/Low]
- **Affected Users**: [All users/Specific hardware/Development only]
- **Workaround Available**: [Yes/No/Partial]
## 💡 Suggested Solutions
If you have suggestions on a fix for the bug, please describe them here.
## 📝 Additional Notes
Any other information that might be relevant to the bug report.
---
**Before submitting:**
- [ ] I have searched existing issues to avoid duplicates
- [ ] I have provided all required information
- [ ] I have tested with the latest version
- [ ] I have included relevant logs and debug information

View File

@@ -0,0 +1,254 @@
---
name: Feature Request
about: Suggest an idea for NowYouSeeMe
title: '[FEATURE] '
labels: ['enhancement', 'needs-triage']
assignees: ''
---
## 🚀 Feature Description
A clear and concise description of the feature you'd like to see implemented.
## 🎯 Use Case
Describe how this feature would be used and what problem it solves:
- **Problem**: What problem does this feature solve?
- **Solution**: How does this feature address the problem?
- **Users**: Who would benefit from this feature?
- **Impact**: What would be the impact of implementing this feature?
## 💡 Proposed Implementation
If you have ideas on how this could be implemented, please describe them:
### Technical Approach
```python
# Example implementation approach
class NewFeature:
def __init__(self, config: FeatureConfig):
self.config = config
def process_data(self, data: InputData) -> OutputData:
# Implementation details
pass
```
### API Design
```python
# Example API usage
from src.new_module import NewFeature
feature = NewFeature(config)
result = feature.process_data(input_data)
```
### Configuration
```json
{
"new_feature": {
"enabled": true,
"parameter1": "value1",
"parameter2": "value2"
}
}
```
## 🔄 Alternatives Considered
What other solutions have you considered? Please include:
- **Alternative 1**: Description and why it wasn't chosen
- **Alternative 2**: Description and why it wasn't chosen
- **No implementation**: What happens if this feature isn't implemented
## 📊 Priority Assessment
### Impact
- **User Impact**: [High/Medium/Low] - How many users would benefit?
- **Technical Impact**: [High/Medium/Low] - How complex is the implementation?
- **Performance Impact**: [High/Medium/Low] - How does it affect system performance?
### Effort Estimation
- **Development Time**: [1-2 weeks, 1-2 months, 3+ months]
- **Testing Effort**: [Low/Medium/High]
- **Documentation Effort**: [Low/Medium/High]
## 🎯 Success Criteria
Define what success looks like for this feature:
- [ ] **Functional Requirements**
- [ ] Feature works as described
- [ ] Integrates with existing system
- [ ] Maintains performance targets
- [ ] **Non-Functional Requirements**
- [ ] Latency remains <20ms
- [ ] Accuracy remains <10cm
- [ ] Frame rate remains 30-60 FPS
- [ ] **User Experience**
- [ ] Intuitive user interface
- [ ] Clear documentation
- [ ] Backward compatibility
## 🔧 Technical Requirements
### Hardware Requirements
- **GPU**: [Required/Optional/Not needed]
- **Camera**: [Required/Optional/Not needed]
- **WiFi**: [Required/Optional/Not needed]
- **Additional Hardware**: [List any additional requirements]
### Software Requirements
- **Dependencies**: [List any new dependencies]
- **Platform Support**: [Windows/Linux/macOS/All]
- **Python Version**: [3.8+/3.9+/3.10+/All]
### Integration Points
- **Camera Module**: [Yes/No] - Integration with camera capture
- **RF Module**: [Yes/No] - Integration with WiFi CSI
- **SLAM Processing**: [Yes/No] - Integration with SLAM algorithms
- **Rendering Engine**: [Yes/No] - Integration with 3D rendering
- **Azure Integration**: [Yes/No] - Integration with cloud services
## 📋 Implementation Plan
### Phase 1: Core Implementation
- [ ] Design API interface
- [ ] Implement core functionality
- [ ] Add unit tests
- [ ] Basic integration
### Phase 2: Integration
- [ ] Integrate with existing modules
- [ ] Add configuration options
- [ ] Performance optimization
- [ ] Integration tests
### Phase 3: Polish
- [ ] User interface updates
- [ ] Documentation
- [ ] Performance testing
- [ ] User acceptance testing
## 🧪 Testing Strategy
### Unit Tests
```python
class TestNewFeature:
def test_basic_functionality(self):
"""Test basic feature functionality"""
feature = NewFeature(config)
result = feature.process_data(test_data)
assert result is not None
def test_performance_requirements(self):
"""Test performance meets requirements"""
# Performance test implementation
```
### Integration Tests
```python
class TestNewFeatureIntegration:
def test_integration_with_existing_modules(self):
"""Test integration with existing system"""
# Integration test implementation
```
### Performance Tests
```python
class TestNewFeaturePerformance:
def test_latency_requirements(self):
"""Test latency remains under 20ms"""
# Latency test implementation
```
## 📚 Documentation Requirements
### User Documentation
- [ ] Feature overview and benefits
- [ ] Installation and setup instructions
- [ ] Configuration options
- [ ] Usage examples
- [ ] Troubleshooting guide
### Developer Documentation
- [ ] API reference
- [ ] Architecture integration
- [ ] Development guidelines
- [ ] Testing procedures
## 🔄 Migration Strategy
### Backward Compatibility
- [ ] Existing configurations continue to work
- [ ] Existing APIs remain functional
- [ ] No breaking changes to user workflows
### Upgrade Path
- [ ] Automatic migration of existing data
- [ ] Clear upgrade instructions
- [ ] Rollback procedures if needed
## 📊 Metrics and Monitoring
### Success Metrics
- **Adoption Rate**: Percentage of users enabling the feature
- **Performance Impact**: Change in system latency/accuracy
- **User Satisfaction**: Feedback and ratings
- **Bug Reports**: Number of issues related to the feature
### Monitoring Points
- [ ] Feature usage statistics
- [ ] Performance impact monitoring
- [ ] Error rate tracking
- [ ] User feedback collection
## 💰 Resource Requirements
### Development Resources
- **Developer Time**: [X weeks/months]
- **Testing Time**: [X weeks/months]
- **Documentation Time**: [X weeks/months]
### Infrastructure Resources
- **Compute**: [CPU/GPU requirements]
- **Storage**: [Additional storage needs]
- **Network**: [Bandwidth requirements]
## 🎯 Acceptance Criteria
- [ ] **Functional**
- [ ] Feature implements all described functionality
- [ ] Integrates seamlessly with existing system
- [ ] Maintains system performance targets
- [ ] **Quality**
- [ ] Comprehensive test coverage (>80%)
- [ ] No critical bugs or security issues
- [ ] Performance benchmarks met
- [ ] **User Experience**
- [ ] Intuitive and easy to use
- [ ] Well-documented and supported
- [ ] Positive user feedback
## 📝 Additional Context
Any other context, examples, or information that might be helpful:
- **Related Issues**: Links to related feature requests or bugs
- **Research**: Links to relevant papers or implementations
- **Examples**: Links to similar features in other projects
- **Mockups**: UI/UX mockups or wireframes
---
**Before submitting:**
- [ ] I have searched existing issues to avoid duplicates
- [ ] I have provided comprehensive information about the feature
- [ ] I have considered the impact on existing functionality
- [ ] I have outlined a clear implementation plan

227
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,227 @@
## 📝 Description
Brief description of changes made in this pull request.
## 🎯 Type of Change
Please delete options that are not relevant.
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📚 Documentation update
- [ ] ⚡ Performance improvement
- [ ] 🔧 Refactoring (no functional changes)
- [ ] 🧪 Test addition or update
- [ ] 🏗️ Build system or external dependency change
- [ ] 🎨 Style/formatting change (no functional changes)
## 🔗 Related Issues
Closes #(issue number)
Fixes #(issue number)
Related to #(issue number)
## 🧪 Testing
### Test Coverage
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Performance tests added/updated
- [ ] Manual testing completed
### Test Results
```bash
# Run test suite
pytest tests/ -v --cov=src
# Results:
# - Total tests: X
# - Passed: X
# - Failed: X
# - Coverage: X%
```
### Performance Impact
- [ ] Latency remains <20ms
- [ ] Accuracy remains <10cm
- [ ] Frame rate remains 30-60 FPS
- [ ] CSI rate remains ≥100 pkt/s
## 📋 Checklist
### Code Quality
- [ ] Code follows the project's style guidelines
- [ ] Self-review of code completed
- [ ] Code is commented, particularly in hard-to-understand areas
- [ ] Corresponding changes to documentation made
- [ ] No new warnings generated
- [ ] No new linting errors
### Documentation
- [ ] README.md updated (if applicable)
- [ ] API documentation updated (if applicable)
- [ ] Code comments added/updated
- [ ] CHANGELOG.md updated
- [ ] Installation instructions updated (if applicable)
### Security
- [ ] No security vulnerabilities introduced
- [ ] Sensitive data properly handled
- [ ] Authentication/authorization updated (if applicable)
- [ ] Input validation added (if applicable)
### Compatibility
- [ ] Backward compatibility maintained
- [ ] Forward compatibility considered
- [ ] Cross-platform compatibility verified
- [ ] Dependency versions compatible
## 🔧 Technical Details
### Changes Made
```python
# Example of key changes
class NewFeature:
def __init__(self, config: Config):
self.config = config
def process_data(self, data: InputData) -> OutputData:
# New implementation
return processed_data
```
### Configuration Changes
```json
{
"new_feature": {
"enabled": true,
"parameter": "value"
}
}
```
### API Changes
- [ ] No breaking API changes
- [ ] New API endpoints added
- [ ] Existing API endpoints modified
- [ ] API documentation updated
### Dependencies
- [ ] No new dependencies added
- [ ] New dependencies added and documented
- [ ] Dependency versions updated
- [ ] Security implications reviewed
## 📊 Performance Analysis
### Before Changes
- **Latency**: X ms
- **Accuracy**: X cm
- **Frame Rate**: X FPS
- **Memory Usage**: X MB
- **CPU Usage**: X%
### After Changes
- **Latency**: X ms
- **Accuracy**: X cm
- **Frame Rate**: X FPS
- **Memory Usage**: X MB
- **CPU Usage**: X%
### Performance Tests
```bash
# Run performance benchmarks
python -m pytest tests/test_performance.py -v
# Results:
# - Latency test: PASSED
# - Accuracy test: PASSED
# - Memory test: PASSED
```
## 🚀 Deployment
### Environment
- [ ] Development environment tested
- [ ] Staging environment tested
- [ ] Production environment ready
### Rollback Plan
- [ ] Rollback procedure documented
- [ ] Data migration plan (if applicable)
- [ ] Configuration rollback tested
### Monitoring
- [ ] Metrics collection updated
- [ ] Alerting rules updated
- [ ] Logging enhanced (if applicable)
## 📸 Screenshots
If applicable, add screenshots to help explain your changes:
### Before
![Before](url-to-before-screenshot)
### After
![After](url-to-after-screenshot)
## 🔍 Code Review Notes
### Key Areas to Review
- [ ] Algorithm implementation
- [ ] Error handling
- [ ] Performance implications
- [ ] Security considerations
- [ ] Documentation quality
### Potential Issues
- [ ] Edge cases handled
- [ ] Error conditions tested
- [ ] Resource cleanup implemented
- [ ] Thread safety considered
## 📝 Additional Notes
Any additional information that reviewers should know:
- **Breaking Changes**: List any breaking changes
- **Migration Guide**: Link to migration documentation
- **Known Issues**: List any known issues or limitations
- **Future Work**: Mention any planned follow-up work
## 🎯 Acceptance Criteria
- [ ] All tests pass
- [ ] Code review completed
- [ ] Documentation updated
- [ ] Performance benchmarks met
- [ ] Security review completed
- [ ] Deployment tested
## 📋 Review Checklist
### For Reviewers
- [ ] Code follows project standards
- [ ] Tests are comprehensive
- [ ] Documentation is clear
- [ ] Performance impact is acceptable
- [ ] Security implications considered
- [ ] Backward compatibility maintained
### For Maintainers
- [ ] All CI checks pass
- [ ] Code coverage meets requirements
- [ ] Performance benchmarks pass
- [ ] Security scan passes
- [ ] Documentation builds successfully
---
**Before merging:**
- [ ] All CI/CD checks pass
- [ ] At least one maintainer approval
- [ ] All requested changes addressed
- [ ] Final testing completed
- [ ] Release notes prepared

190
.github/workflows/cd.yml vendored Normal file
View File

@@ -0,0 +1,190 @@
name: CD
on:
push:
tags:
- 'v*'
workflow_run:
workflows: ["CI"]
types:
- completed
env:
PYTHON_VERSION: '3.9'
jobs:
release:
name: Create Release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install -y build-essential cmake libopencv-dev libeigen3-dev
- name: Build project
run: |
chmod +x tools/build.sh
./tools/build.sh
- name: Create release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
- name: Upload build artifacts
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./build/
asset_name: nowyouseeme-${{ github.ref_name }}-linux.tar.gz
asset_content_type: application/gzip
deploy-staging:
name: Deploy to Staging
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
environment: staging
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Deploy to staging
run: |
echo "Deploying to staging environment..."
# Add your staging deployment commands here
# Example: docker build and push to staging registry
- name: Notify deployment
run: |
echo "Staging deployment completed successfully"
deploy-production:
name: Deploy to Production
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
environment: production
needs: [release]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Deploy to production
run: |
echo "Deploying to production environment..."
# Add your production deployment commands here
# Example: docker build and push to production registry
- name: Notify deployment
run: |
echo "Production deployment completed successfully"
docker:
name: Build and Push Docker Image
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
nowyouseeme/nowyouseeme:${{ github.ref_name }}
nowyouseeme/nowyouseeme:latest
cache-from: type=gha
cache-to: type=gha,mode=max
publish-pypi:
name: Publish to PyPI
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Build package
run: python -m build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
notify:
name: Notify Team
runs-on: ubuntu-latest
if: always()
needs: [release, deploy-production, docker, publish-pypi]
steps:
- name: Notify on success
if: success()
run: |
echo "All deployment steps completed successfully"
# Add your notification logic here (Slack, Discord, etc.)
- name: Notify on failure
if: failure()
run: |
echo "Deployment failed"
# Add your failure notification logic here

168
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,168 @@
name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
env:
PYTHON_VERSION: '3.9'
CXX_STANDARD: '17'
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 black isort mypy pylint
pip install -r requirements.txt
- name: Lint Python code
run: |
flake8 src/ --count --select=E9,F63,F7,F82 --show-source --statistics
black --check src/
isort --check-only src/
mypy src/ --ignore-missing-imports
test-python:
name: Test Python
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.9, 3.10, 3.11]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov pytest-mock
- name: Run Python tests
run: |
pytest src/ --cov=src --cov-report=xml --cov-report=html
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
flags: python-${{ matrix.python-version }}
test-cpp:
name: Test C++
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake libopencv-dev libeigen3-dev
- name: Build C++ code
run: |
mkdir build
cd build
cmake ..
make -j$(nproc)
- name: Run C++ tests
run: |
cd build
ctest --output-on-failure
build:
name: Build
runs-on: ubuntu-latest
needs: [lint, test-python, test-cpp]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install -y build-essential cmake libopencv-dev libeigen3-dev
- name: Build project
run: |
chmod +x tools/build.sh
./tools/build.sh
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: build/
security:
name: Security Scan
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run Bandit security scan
run: |
pip install bandit
bandit -r src/ -f json -o bandit-report.json
- name: Upload security scan results
uses: actions/upload-artifact@v3
with:
name: security-scan
path: bandit-report.json
documentation:
name: Build Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install documentation dependencies
run: |
pip install sphinx sphinx-rtd-theme myst-parser
- name: Build documentation
run: |
cd docs
make html
- name: Upload documentation
uses: actions/upload-artifact@v3
with:
name: documentation
path: docs/_build/html/

20
.github/workflows/dependency-review.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Dependency Review
on:
pull_request:
branches: [ main, develop ]
permissions:
contents: read
jobs:
dependency-review:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Dependency Review
uses: actions/dependency-review-action@v3
with:
fail-on-severity: moderate