This project now includes WalkMe-style in-app guidance to help users learn and use the diagramming application effectively. WalkMe provides step-by-step walkthroughs, contextual tips, and interactive guidance for all 9 diagram types.
- Step-by-step guidance for each diagram type
- Visual highlights and element targeting
- Progress tracking
- Skip/Previous/Next navigation
- Completion tracking (saved in localStorage)
- Smart tips that appear on hover
- Field-specific guidance
- Best practices and tips
- Keyboard shortcuts help
- Floating help button (bottom-right)
- Quick access to walkthroughs
- Toggle tips on/off
- Canvas-specific guidance
- Automatically starts walkthrough for first-time users
- Detects new users via localStorage
- Guides through Organization Chart first
src/components/walkme/
βββ WalkMeProvider.jsx # Context provider and state management
βββ Walkthrough.jsx # Walkthrough step component
βββ WalkMeLauncher.jsx # Floating help button
βββ walkthroughConfig.js # Walkthrough step configurations
- Welcome and overview
- Adding root node
- Adding subordinates
- Customizing appearance
- Exporting charts
- Welcome to BPMN
- Adding start events
- Adding tasks
- Adding decision points
- Adding end events
- Welcome to ERD
- Creating entities
- Adding attributes
- Creating relationships
- Exporting to SQL
- Welcome to Network Designer
- Adding devices
- Connecting devices
- Configuring properties
- Welcome to Gantt Chart
- Adding tasks
- Setting duration
- Linking dependencies
- Tracking progress
- Welcome to Mind Map
- Central idea
- Adding branches
- Organizing ideas
- Welcome to Workflow Builder
- Adding start node
- Adding process steps
- Adding decision points
- Completing workflow
- Welcome to Strategy Map
- Defining vision
- Setting goals
- Defining objectives
- Planning initiatives
- Welcome to Process Mapping
- Adding input nodes
- Adding process nodes
- Adding storage nodes
- Adding output nodes
Method 1: Help Launcher
- Click the floating help button (bottom-right)
- Click "Start Walkthrough"
- Follow the steps
Method 2: Programmatic
import { useWalkMe } from './components/walkme/WalkMeProvider'
function MyComponent() {
const { startWalkthrough } = useWalkMe()
return (
<button onClick={() => startWalkthrough('orgchart')}>
Start Org Chart Walkthrough
</button>
)
}const { toggleTips, showTips } = useWalkMe()
// Toggle tips on/off
<button onClick={toggleTips}>
{showTips ? 'Hide Tips' : 'Show Tips'}
</button>const { isCompleted } = useWalkMe()
if (isCompleted('orgchart')) {
console.log('Org chart walkthrough completed!')
}Edit walkthroughConfig.js:
export const walkthroughSteps = {
yourCanvasType: [
{
title: 'Step Title',
description: 'Step description',
targetSelector: '.your-selector', // CSS selector
position: 'bottom', // 'top', 'bottom', 'left', 'right', 'center'
tips: [
'Tip 1',
'Tip 2'
]
}
]
}Edit Walkthrough.jsx to customize:
- Colors and styling
- Positioning logic
- Animation effects
- Step transitions
Edit WalkMeLauncher.jsx to customize:
- Button position
- Menu content
- Available actions
WalkMe uses React Context API for state management:
currentWalkthrough- Active walkthrough typecurrentStep- Current step indexshowTips- Tips visibilitycompletedWalkthroughs- Array of completed types
Completion status is saved in localStorage:
- Key:
walkme_completed - Format: JSON array of canvas types
- First visit:
walkme_first_visit
WalkMe uses CSS selectors to target elements:
.gojs-canvas- GoJS canvas.react-flow__node- React Flow nodes[data-properties-panel]- Properties panel[data-export-button]- Export button
Note: Add data-* attributes to elements you want to target:
<div data-properties-panel>
{/* Properties panel content */}
</div>Track walkthrough usage:
- Completion rates
- Drop-off points
- Time to complete
- User engagement
- One action per step
- Maximum 5-7 steps per walkthrough
- Clear, concise descriptions
- Prefer stable selectors (data attributes)
- Test selectors after UI changes
- Provide fallback selectors
- Explain why, not just what
- Include best practices
- Add keyboard shortcuts
- Test in different browsers
- Test with different screen sizes
- Test with dark/light themes
- Check if
WalkMeProviderwraps your app - Verify
Walkthroughcomponent is rendered - Check browser console for errors
- Verify selector exists in DOM
- Check selector syntax
- Ensure element is visible
- Check
showTipsstate - Verify tip components are rendered
- Check CSS for visibility
- WalkMe Project - Original WalkMe project
- WalkMe Explained - Detailed WalkMe guide
- Implementation Guide - Implementation best practices
To add new walkthroughs or improve existing ones:
- Add steps to
walkthroughConfig.js - Test walkthrough thoroughly
- Update this documentation
- Submit pull request
Same as main project (MIT License)
WalkMe Integration by: Combined WalkMe + DiagramPro Projects Version: 1.0 Status: β Integrated and Ready