Hands-on learning guide for mastering the Vision Logistics tracking system
This guide provides structured exercises, experiments, and learning activities to help you understand and practice with the warehouse logistics tracking system. Perfect for developers, analysts, and anyone wanting to explore the system's capabilities.
By completing this guide, you will:
- ✅ Master system setup and troubleshooting
- ✅ Understand data flow from cameras to analytics
- ✅ Create custom animations and scenarios
- ✅ Analyze movement patterns and operational insights
- ✅ Integrate APIs and build custom solutions
- ✅ Optimize system performance for production use
- Basic command line familiarity
- Understanding of JSON data format
- Basic web development concepts (HTML, JavaScript)
- Node.js 18+ and npm
- Text editor (VS Code recommended)
- Web browser (Chrome/Firefox)
- Terminal/Command Prompt
Goal: Get the system running and understand the architecture
# 1. Clone and start the system
git clone <repository-url>
cd vision-logistics
npm start
# 2. Verify all services are running
npm run system:health
# 3. Open the dashboard
open http://localhost:3000Questions to answer:
- How many services are running?
- What ports do they use?
- Which service handles the UI?
- What happens if you refresh the page?
Expected output: All services healthy, animated heatmap visible
Goal: Understand the data APIs and their responses
# 1. Check service health
curl http://localhost:3001/health
curl http://localhost:3002/health
# 2. Get heatmap data
curl http://localhost:3002/heatmap | jq '.' > heatmap.json
# 3. Get cell statistics
curl http://localhost:3002/stats/cells | jq '.' > stats.json
# 4. Get active objects
curl http://localhost:3002/objects/active | jq '.' > objects.json
# 5. Get recent events
curl http://localhost:3002/events/recent | jq '.' > events.jsonAnalysis tasks:
- Count how many cells are in the heatmap
- Find the cell with highest dwell time
- Identify all active object types
- Calculate average intensity across all cells
Deliverable: Create a summary report of the API responses
Goal: Learn to generate test data and observe effects
# 1. Generate a single test frame
curl -X POST http://localhost:3001/generate-test-frame \
-H "Content-Type: application/json" \
-d '{"camera_id": "test-cam", "object_count": 5}'
# 2. Generate a batch of frames
curl -X POST http://localhost:3001/simulate-batch \
-H "Content-Type: application/json" \
-d '{"camera_ids": ["test-cam"], "frames_per_camera": 10, "interval_ms": 500}'
# 3. Run continuous data generation
npm run generate-test-dataObservation tasks:
- Monitor the dashboard while generating data
- Note which areas of the heatmap change
- Watch the event log for new entries
- Record the object counts before and after
Challenge: Generate data for 3 different cameras simultaneously
Goal: Analyze the built-in animation patterns
Task: Open the demo and observe for 5 complete animation cycles (75 seconds)
Tracking sheet:
Cycle 1 (0-15s):
- Forklift position: Start=___, End=___
- Worker position: Start=___, End=___
- Pallet position: Start=___, End=___
- Cart position: Start=___, End=___
Cycle 2 (15-30s):
[Repeat tracking]
Analysis questions:
- Which object moves fastest?
- Which path covers the most distance?
- Which object creates the highest intensity?
- How do the paths avoid collision?
Goal: Create your own animation pattern
Steps:
- Copy the mock API:
cp mock-api.js custom-mock-api.js - Edit the animation: Modify the
movingObjectsarray - Add a new object: Create a fifth moving object
- Test your changes: Stop the current API and start yours
Example custom object:
{
// Object 5: zigzag pattern
path: (progress) => ({
x: Math.floor(2 + progress * 16),
y: Math.floor(7 + Math.sin(progress * Math.PI * 8) * 3),
intensity: 0.5 + Math.sin(progress * Math.PI * 4) * 0.2,
size: 1
})
}Challenge objectives:
- Create a spiral pattern
- Make an object that pauses at corners
- Add acceleration/deceleration effects
- Create collision avoidance between objects
Goal: Extract insights from movement patterns
Data collection script:
#!/bin/bash
# collect_data.sh
for i in {1..20}; do
curl -s http://localhost:3002/heatmap | jq '.timestamp, .cells[].intensity' >> intensity_data.txt
sleep 3
doneAnalysis tasks:
- Plot intensity over time for top 3 cells
- Calculate movement speed for each object type
- Identify peak activity zones during animation cycle
- Measure coverage area for each movement pattern
Tools you can use:
- Excel/Google Sheets for basic plotting
- Python with matplotlib for advanced analysis
- Online JSON viewers for data exploration
Goal: Modify the user interface
Tasks:
-
Change refresh interval:
// Edit ui/src/App.tsx const [refreshInterval, setRefreshInterval] = useState(10000); // 10 seconds
-
Add new UI elements:
- Add a "Speed" display showing current animation progress
- Create an "Object Count" widget
- Add buttons to pause/resume animation
-
Modify heatmap colors:
/* Edit ui/src/components/HeatmapGrid.tsx */ /* Find the color calculation and adjust */
Verification: Your changes should be visible in the browser
Goal: Add new API endpoints
Add to mock-api.js:
// New endpoint: Get object speed
else if (pathname === '/objects/speed') {
// Calculate and return speed data for each object
const speedData = calculateObjectSpeeds(now);
res.writeHead(200);
res.end(JSON.stringify(speedData));
}
// New endpoint: Get zone statistics
else if (pathname === '/zones/stats') {
// Divide grid into zones and return stats
const zoneStats = calculateZoneStatistics();
res.writeHead(200);
res.end(JSON.stringify(zoneStats));
}Integration tasks:
- Create functions to calculate the new data
- Update the UI to display the new information
- Add error handling for the new endpoints
- Test with curl commands
Goal: Improve system performance
Measurement baseline:
# Measure current performance
time curl http://localhost:3002/heatmap
time curl http://localhost:3002/stats/cellsOptimization targets:
- Reduce API response time by optimizing calculations
- Minimize data transfer by filtering unnecessary fields
- Implement caching for expensive calculations
- Optimize UI updates to reduce re-renders
Verification: Compare before/after performance measurements
Goal: Simulate a multi-camera warehouse
Setup:
# Start multiple collector instances
COLLECTOR_ID=collector-01 PORT=3001 npm run dev:collector &
COLLECTOR_ID=collector-02 PORT=3011 npm run dev:collector &
COLLECTOR_ID=collector-03 PORT=3021 npm run dev:collector &Data generation:
# Generate data for each collector
for port in 3001 3011 3021; do
curl -X POST http://localhost:$port/simulate-batch \
-H "Content-Type: application/json" \
-d '{"camera_ids": ["cam-A", "cam-B"], "frames_per_camera": 20}'
doneAnalysis objectives:
- Compare activity patterns across cameras
- Identify correlations between different areas
- Calculate total warehouse utilization
- Design optimal camera placement strategies
Goal: Test system limits and scalability
Load generation script:
#!/bin/bash
# load_test.sh
for i in {1..100}; do
(
curl -X POST http://localhost:3001/generate-test-frame \
-H "Content-Type: application/json" \
-d "{\"camera_id\": \"cam-$i\", \"object_count\": 10}" &
)
done
waitMonitoring:
# Monitor system resources
top -p $(pgrep node)
netstat -an | grep :3002
curl http://localhost:3002/healthAnalysis questions:
- At what load does the system slow down?
- Which component becomes the bottleneck?
- How does memory usage change with load?
- What's the maximum sustainable throughput?
Goal: Test system resilience and recovery
Failure scenarios to test:
# 1. Kill the API server
pkill -f "mock-api"
# Observe UI behavior, then restart
# 2. Flood with invalid data
curl -X POST http://localhost:3001/frames \
-H "Content-Type: application/json" \
-d '{"invalid": "data"}'
# 3. Overload with requests
for i in {1..1000}; do
curl http://localhost:3002/heatmap > /dev/null 2>&1 &
doneRecovery procedures:
- Document error messages and behaviors
- Implement graceful degradation strategies
- Create health check automation
- Design fallback mechanisms
Goal: Build a specialized monitoring dashboard
Requirements:
- Display custom KPIs (efficiency, utilization, bottlenecks)
- Add alerts for unusual patterns
- Create historical trend analysis
- Implement export functionality
Technologies:
- React for frontend
- Chart.js for visualizations
- Express.js for custom backend
- SQLite for data storage
Goal: Add predictive analytics
Objectives:
- Predict object movement patterns
- Identify anomalous behavior
- Forecast warehouse utilization
- Optimize path planning
Tools:
- Python with scikit-learn
- TensorFlow.js for browser ML
- Node.js for model serving
- REST APIs for integration
Goal: Create a mobile monitoring app
Features:
- Live heatmap view
- Push notifications for alerts
- QR code integration for object tracking
- Offline mode support
Technologies:
- React Native or Flutter
- WebSocket for real-time updates
- Push notification services
- Local storage for offline data
- Explain the data flow from camera detection to heatmap visualization
- What are the benefits of grid-based position tracking?
- How would you optimize the system for 1000+ concurrent objects?
- Design a warehouse layout optimization algorithm using the available data
- Setup Challenge: Deploy the system on a new machine in under 5 minutes
- Customization Challenge: Add a new movement pattern in under 30 minutes
- Integration Challenge: Connect a new data source to the API
- Performance Challenge: Optimize response time by 50%
Create and document at least one substantial project:
- Custom animation library
- Advanced analytics dashboard
- Integration with warehouse management system
- Mobile application for field workers
- Complete Modules 1-2 thoroughly
- Focus on understanding data structures
- Practice API interactions daily
- Join community discussions
- Complete all modules
- Build custom integrations
- Contribute to system improvements
- Mentor other learners
- Design production deployments
- Implement enterprise features
- Create training materials
- Lead development initiatives
- Demo Guide - Presentation and demonstration
- README - System overview and quick start
- Troubleshooting - Common issues and solutions
- GitHub Issues for technical questions
- Discussion forums for best practices
- Code review submissions
- Regular virtual meetups
- VS Code extensions for better development
- Browser devtools for debugging
- Postman collections for API testing
- Docker configurations for deployment
🎯 Ready to start learning? Begin with Module 1 and progress at your own pace!