This guide walks you through a complete demonstration of the IntelliNet Orchestrator system, showcasing its key features and capabilities.
- Docker and Docker Compose installed
- System is running (see README.md for setup instructions)
- Sample data has been populated
# Start all services
docker-compose up -d
# Wait for services to be ready (about 30 seconds)
docker-compose ps
# Populate sample data
docker-compose exec backend python scripts/populate_sample_data.py- Frontend UI: http://localhost
- API Documentation: http://localhost:8000/api/docs
- Neo4j Browser: http://localhost:7474
Default Credentials:
- Username:
admin - Password:
admin123
Objective: View and interact with the network topology visualization.
Steps:
-
Login to the application at http://localhost
- Username:
admin - Password:
admin123
- Username:
-
Navigate to the Topology view (should be the default page)
-
Observe the network graph:
- Core routers (CORE-R1, CORE-R2, CORE-R3, CORE-R4)
- Edge routers (EDGE-R1, EDGE-R2, EDGE-R3)
- DWDM systems (DWDM-1, DWDM-2)
- GPON devices (OLT-1, OLT-2, ONT-1, ONT-2, ONT-3)
-
Interact with the graph:
- Zoom in/out using mouse wheel
- Pan by dragging
- Click on nodes to see device details
- Click on edges to see link information
-
Check device status:
- Green nodes: Active devices
- Red nodes: Failed devices
- Yellow nodes: Maintenance mode
Expected Result: Interactive network topology with 14 devices and 18 links.
Objective: Add a new device to the network topology.
Steps:
-
Navigate to the Device Management section
-
Click "Add Device" button
-
Fill in device details:
- ID:
EDGE-R4 - Name:
Edge Router 4 - Type:
MPLS - Capacity:
50.0Gbps - Location:
SF-POP1
- ID:
-
Submit the form
-
Verify the device appears in the topology
Expected Result: New device created and visible in the topology graph.
Objective: Connect two devices with a network link.
Steps:
-
Navigate to the Link Management section
-
Click "Add Link" button
-
Fill in link details:
- ID:
LINK-C3-E4 - Source Device:
CORE-R3 - Target Device:
EDGE-R4 - Bandwidth:
10.0Gbps - Type:
fiber - Latency:
5.0ms
- ID:
-
Submit the form
-
Verify the link appears in the topology
Expected Result: New link created connecting CORE-R3 to EDGE-R4.
Objective: Successfully provision an MPLS VPN service.
Steps:
-
Navigate to the Service Provisioning section
-
Click "Provision Service" button
-
Fill in service details:
- ID:
VPN-DEMO-001 - Service Type:
MPLS_VPN - Source Device:
EDGE-R1 - Target Device:
EDGE-R2 - Bandwidth:
2.0Gbps - Latency Requirement:
100.0ms
- ID:
-
Submit the form
-
Observe the provisioning process:
- System finds path between devices
- Rule engine validates the request
- Service is created and activated
-
Check the service details:
- Service ID and status
- Allocated path through the network
- Bandwidth allocation
Expected Result: Service successfully provisioned with path displayed.
Objective: Demonstrate rule engine validation by attempting to provision a service that exceeds capacity.
Steps:
-
Navigate to the Service Provisioning section
-
Attempt to provision a service with excessive bandwidth:
- ID:
VPN-DEMO-002 - Service Type:
MPLS_VPN - Source Device:
EDGE-R1 - Target Device:
EDGE-R3 - Bandwidth:
200.0Gbps (exceeds capacity) - Latency Requirement:
100.0ms
- ID:
-
Submit the form
-
Observe the validation failure:
- Error message indicating bandwidth constraint violation
- Rule ID (BW001) that failed
- Details about available vs. requested capacity
Expected Result: Service provisioning rejected with clear error message.
Objective: Monitor network status and performance metrics.
Steps:
-
Navigate to the Analytics Dashboard
-
Observe the dashboard widgets:
- Total devices and active count
- Total links and utilization
- Active services count
- Average network utilization
-
View device utilization charts:
- Bandwidth utilization over time
- Device status distribution
- Link performance metrics
-
Select a specific device to view detailed metrics:
- Historical utilization data
- Status changes over time
- Associated services
Expected Result: Comprehensive view of network health and performance.
Objective: Use path optimization to find the best route between devices.
Steps:
-
Navigate to the Path Optimization section
-
Enter source and target devices:
- Source:
CORE-R1 - Target:
CORE-R3
- Source:
-
Click "Find Optimal Path"
-
Compare results:
- Shortest path (fewest hops)
- Optimal path (considering utilization and latency)
- Total latency for each path
- Available bandwidth
-
Visualize the path on the topology graph
Expected Result: Multiple path options with performance metrics.
Objective: Remove an active service from the network.
Steps:
-
Navigate to the Services list
-
Select a service to decommission (e.g.,
VPN-DEMO-001) -
Click "Decommission" button
-
Confirm the action
-
Observe the decommissioning process:
- Service status changes to "decommissioned"
- Device utilization is updated
- Event is logged
-
Verify the service is no longer active
Expected Result: Service successfully decommissioned and resources freed.
# Get JWT token
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123"}'
# Save the access_token from the response
export TOKEN="your_access_token_here"curl -X GET http://localhost:8000/api/topology \
-H "Authorization: Bearer $TOKEN"curl -X POST http://localhost:8000/api/topology/device \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "API-DEVICE-001",
"name": "API Test Device",
"type": "MPLS",
"capacity": 50.0,
"location": "API-TEST"
}'curl -X POST http://localhost:8000/api/service/provision \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "API-SERVICE-001",
"service_type": "MPLS_VPN",
"source_device_id": "EDGE-R1",
"target_device_id": "EDGE-R2",
"bandwidth": 1.0,
"latency_requirement": 100.0
}'curl -X GET http://localhost:8000/api/analytics/status \
-H "Authorization: Bearer $TOKEN"curl -X GET "http://localhost:8000/api/analytics/device/CORE-R1/metrics?limit=10" \
-H "Authorization: Bearer $TOKEN"# Populate the database with sample topology
docker-compose exec backend python scripts/populate_sample_data.pyWhat it does:
- Creates 14 network devices (routers, DWDM, GPON)
- Creates 18 links connecting the devices
- Creates 5 sample services
- Records initial metrics
# Run automated service provisioning scenarios
docker-compose exec backend python scripts/demo_service_provisioning.pyWhat it demonstrates:
- Successful service provisioning
- Bandwidth validation failure
- Latency validation failure
- No path available scenario
- Multiple service provisioning
- Path optimization
- Service decommissioning
Open http://localhost:7474 in your browser.
Connect:
- Bolt URL:
bolt://localhost:7687 - Username:
neo4j - Password: (from your .env file)
View all devices:
MATCH (d:Device)
RETURN dView all links:
MATCH (s:Device)-[l:LINK]->(t:Device)
RETURN s, l, tFind path between devices:
MATCH path = shortestPath(
(source:Device {id: 'CORE-R1'})-[:LINK*]-(target:Device {id: 'CORE-R3'})
)
RETURN pathView services:
MATCH (s:Service)
RETURN sFind devices by type:
MATCH (d:Device {type: 'MPLS'})
RETURN d.id, d.name, d.capacity-
Start Fresh: Clear the database before each demo for consistency
docker-compose down -v docker-compose up -d
-
Use Sample Data: Always populate sample data first
docker-compose exec backend python scripts/populate_sample_data.py -
Check Logs: Monitor logs for detailed information
docker-compose logs -f backend
-
Test API First: Verify API endpoints before UI demo
- Visit http://localhost:8000/api/docs
- Test endpoints interactively
Issue: Frontend can't connect to backend
- Solution: Check CORS settings in config.yaml
- Verify:
curl http://localhost:8000/health
Issue: Neo4j connection failed
- Solution: Ensure Neo4j is running and credentials are correct
- Check:
docker-compose logs neo4j
Issue: Sample data script fails
- Solution: Ensure databases are initialized
- Run:
docker-compose exec backend python scripts/init_db.py
- Show topology visualization (1 min)
- Create a device and link (1 min)
- Provision a service successfully (1 min)
- Show analytics dashboard (1 min)
- Demonstrate API docs (1 min)
- System architecture overview (2 min)
- Topology management (3 min)
- Service provisioning (success and failure) (4 min)
- Analytics and monitoring (3 min)
- Path optimization (2 min)
- API demonstration (1 min)
- Architecture and design decisions (5 min)
- Complete topology walkthrough (5 min)
- Service provisioning scenarios (7 min)
- Rule engine and validation (5 min)
- Analytics and metrics (4 min)
- API and integration (4 min)
-
Explore the Code:
- Review domain models in
src/models/ - Check service orchestration in
src/services/ - Examine API endpoints in
src/api/routes/
- Review domain models in
-
Extend the System:
- Add new device types
- Create custom validation rules
- Implement additional analytics
-
Run Tests:
docker-compose exec backend pytest tests/ -v -
Read Documentation:
For questions or issues during the demo:
- Check the logs:
docker-compose logs -f - Review API docs: http://localhost:8000/api/docs
- Consult the troubleshooting section in README.md