44
55https://flagopen.github.io/RoboCOIN-DataManager/
66
7+ ** Version:** v1.1
8+
79## Project Overview
810
9- RoboCOIN dataset visualization and download tool, supporting filtering, preview, selection, and dataset export.
11+ RoboCOIN dataset visualization and download tool, supporting advanced filtering, preview, selection, and dataset export. Features a modern, responsive interface with virtual scrolling for handling large datasets efficiently .
1012
1113## Project Structure
1214
1315```
14- robocoin-html /
16+ DataManage /
1517├── docs/
1618│ ├── assets/ # Resource files
17- │ │ ├── dataset_info/ # Dataset metadata (98 YAML files)
19+ │ │ ├── dataset_info/ # Dataset metadata (266 YAML files)
1820│ │ ├── info/ # Index files
1921│ │ │ ├── consolidated_datasets.json # Consolidated dataset information
20- │ │ │ └── data_index.json # Dataset index
21- │ │ ├── thumbnails/ # Thumbnail files (*.jpg, provided by assets/thumbnails)
22- │ │ └── videos/ # Video files (98 MP4s)
22+ │ │ │ ├── data_index.json # Dataset index
23+ │ │ │ └── robot_aliases.json # Robot display name mappings
24+ │ │ ├── thumbnails/ # Thumbnail images (*.jpg)
25+ │ │ └── videos/ # Video files (*.mp4)
2326│ │
24- │ ├── css/ # Style files (modular)
25- │ │ ├── variables.css # CSS variable definitions
26- │ │ ├── base.css # Base styles
27- │ │ ├── layout.css # Layout styles
28- │ │ ├── header.css # Header styles
29- │ │ ├── filter.css # Filter styles
30- │ │ ├── video-grid.css # Video grid styles
31- │ │ ├── selection-panel.css # Selection panel styles
32- │ │ ├── modal.css # Modal styles
33- │ │ ├── animations.css # Animation definitions
34- │ │ ├── responsive.css # Responsive styles
27+ │ ├── css/ # Modular style files
28+ │ │ ├── core/ # Core styles
29+ │ │ │ ├── variables.css # CSS variable definitions
30+ │ │ │ ├── base.css # Base styles
31+ │ │ │ ├── layout.css # Layout styles
32+ │ │ │ └── header.css # Header styles
33+ │ │ ├── filter/ # Filter component styles
34+ │ │ │ ├── filter-control-bar.css
35+ │ │ │ ├── filter-dropdown.css
36+ │ │ │ ├── filter-options.css
37+ │ │ │ └── filter-tooltip.css
38+ │ │ ├── video/ # Video component styles
39+ │ │ │ ├── video-card.css
40+ │ │ │ ├── video-grid.css
41+ │ │ │ ├── video-hover-overlay.css
42+ │ │ │ ├── video-info.css
43+ │ │ │ ├── video-panel.css
44+ │ │ │ ├── video-thumbnail.css
45+ │ │ │ └── video-toolbar.css
46+ │ │ ├── selection/ # Selection panel styles
47+ │ │ │ ├── selection-panel-base.css
48+ │ │ │ ├── selection-list.css
49+ │ │ │ ├── selection-item.css
50+ │ │ │ ├── selection-footer.css
51+ │ │ │ └── selection-hub-buttons.css
52+ │ │ ├── components/ # Reusable components
53+ │ │ │ ├── modal.css
54+ │ │ │ └── toast.css
55+ │ │ ├── animations/ # Animation definitions
56+ │ │ │ └── animations.css
57+ │ │ ├── responsive/ # Responsive design
58+ │ │ │ ├── responsive-desktop.css
59+ │ │ │ ├── responsive-tablet.css
60+ │ │ │ ├── responsive-mobile.css
61+ │ │ │ └── responsive-print.css
3562│ │ └── style.css # CSS entry point
3663│ │
37- │ ├── js/ # JavaScript files (modular)
64+ │ ├── js/ # Modular JavaScript files
3865│ │ ├── modules/ # Feature modules
66+ │ │ │ ├── @filter/ # Filter module group
67+ │ │ │ │ ├── filter-manager.js
68+ │ │ │ │ ├── filter-renderer.js
69+ │ │ │ │ ├── filter-state.js
70+ │ │ │ │ ├── filter-search.js
71+ │ │ │ │ ├── filter-hierarchy.js
72+ │ │ │ │ ├── data.js
73+ │ │ │ │ └── index.js
3974│ │ │ ├── config.js # Configuration management
4075│ │ │ ├── data-manager.js # Data management
41- │ │ │ ├── filter-manager.js # Filter management
42- │ │ │ ├── video-grid.js # Video grid
43- │ │ │ ├── selection-panel.js # Selection panel
76+ │ │ │ ├── video-grid.js # Video grid with virtual scrolling
77+ │ │ │ ├── selection-panel.js # Selection panel with virtual scrolling
78+ │ │ │ ├── download-manager.js # Download command generation
79+ │ │ │ ├── robot-aliases.js # Robot name alias management
4480│ │ │ ├── ui-utils.js # UI utilities
4581│ │ │ ├── event-handlers.js # Event handling
46- │ │ │ └── virtual-scroll.js # Virtual scrolling
47- │ │ ├── app.js # Main application
48- │ │ ├── main.js # Entry file
49- │ │ ├── templates.js # HTML templates
50- │ │ └── types.js # Type definitions
82+ │ │ │ ├── virtual-scroll.js # Virtual scrolling utilities
83+ │ │ │ ├── dom-utils.js # DOM manipulation utilities
84+ │ │ │ ├── error-notifier.js # Error handling
85+ │ │ │ └── toast-manager.js # Toast notifications
86+ │ │ ├── app.js # Main application coordinator
87+ │ │ ├── main.js # Application entry point
88+ │ │ ├── templates.js # HTML template generator
89+ │ │ └── types.js # TypeScript-like type definitions
5190│ │
5291│ ├── index.html # Main page
5392│ ├── favicon.ico # Website icon
54- │ ├── README.md # Project documentation
55- │ └── REFACTORING. md # Refactoring documentation
93+ │ ├── README.md # Project documentation (English)
94+ │ └── README.zh. md # Project documentation (Chinese)
5695│
5796└── README.md # Root directory documentation
5897```
5998
6099## Core Features
61100
62- ### 1. Dataset Filtering
63- - Multi-dimensional filtering: Scene, Robot, End-effector, Action, Object
64- - Hierarchical filters (supports object hierarchy)
65- - Real-time search functionality
66- - Filter Finder (filter option search)
67-
68- ### 2. Dataset Preview
69- - Video auto-play
70- - Hover information overlay
71- - Detail modal dialog
72- - Thumbnail loading (provided from assets/thumbnails directory, not auto-generated)
101+ ### 1. Advanced Dataset Filtering
102+ - ** Multi-dimensional filtering** : Scene, Robot, End-effector, Action, Object
103+ - ** Hierarchical filters** : Supports object hierarchy with expandable/collapsible groups
104+ - ** Filter Finder** : Search filter options with keyboard navigation (Ctrl+F)
105+ - Real-time highlighting of matching options
106+ - Navigate through matches with arrow keys
107+ - Match counter display
108+ - ** Real-time dataset search** : Search datasets by name in the main search box
109+ - ** Filter state management** : Active filter count display and easy reset
110+ - ** Robot alias support** : Friendly display names for robot models
111+
112+ ### 2. Rich Dataset Preview
113+ - ** Video auto-play on hover** : Videos automatically play when hovering over cards
114+ - ** Hover information overlay** : Quick preview of dataset metadata
115+ - ** Detail modal dialog** : Comprehensive dataset information including:
116+ - Dataset metadata (scene, robot, action, objects)
117+ - Version information
118+ - Codebase version
119+ - Download links
120+ - ** Thumbnail loading** : Fast thumbnail display for quick browsing
121+ - ** Video controls** : Play/pause controls in video cards
73122
74123### 3. Selection and Management
75- - Multi-select/Single-select
76- - Shopping cart functionality
77- - Batch operations (add/remove/clear)
78- - Selection state persistence
79-
80- ### 4. Export Functionality
81- - JSON format export
82- - Python download command generation
83- - Support for ModelScope/HuggingFace sources
84- - Import saved selections
124+ - ** Multi-select support** : Click cards to select/deselect multiple datasets
125+ - ** Batch operations** :
126+ - Select all filtered datasets
127+ - Deselect all datasets
128+ - Add selected items to cart
129+ - Remove selected items from cart
130+ - Clear entire cart
131+ - ** Shopping cart (Batch Downloader)** :
132+ - Virtual scrolling for large selections
133+ - Individual item removal
134+ - Real-time count updates
135+ - ** Selection state persistence** : Maintains selection state during filtering
136+
137+ ### 4. Export and Download
138+ - ** JSON export/import** :
139+ - Export selection list as JSON file
140+ - Import previously saved selections
141+ - ** Python download command generation** :
142+ - Generate ready-to-use download commands
143+ - Support for both ModelScope and HuggingFace hubs
144+ - One-click copy to clipboard
145+ - Batch download support for multiple datasets
85146
86147### 5. Performance Optimization
87- - Virtual scrolling (supports large datasets)
88- - Lazy loading videos
89- - IntersectionObserver optimization
90- - Element caching and reuse
148+ - ** Virtual scrolling** :
149+ - Efficient rendering for large datasets (266+ datasets)
150+ - Applied to both video grid and selection panel
151+ - Element caching and reuse
152+ - ** Lazy loading** :
153+ - Videos load only when visible
154+ - IntersectionObserver-based optimization
155+ - Progressive loading with progress indicator
156+ - ** Optimized rendering** :
157+ - Minimal DOM manipulation
158+ - Efficient event handling
159+ - Smooth animations and transitions
160+
161+ ### 6. User Experience
162+ - ** Responsive design** :
163+ - Desktop, tablet, and mobile layouts
164+ - Print-friendly styles
165+ - Adaptive UI components
166+ - ** Loading indicators** :
167+ - Progress bar during dataset loading
168+ - Loading overlay with spinner
169+ - Dataset count display
170+ - ** Toast notifications** :
171+ - Success/error feedback
172+ - Non-intrusive notifications
173+ - ** Global banner** :
174+ - Important announcements
175+ - Auto-dismissible on interaction
176+ - ** Keyboard shortcuts** :
177+ - Ctrl+F for Filter Finder
178+ - Arrow keys for navigation
91179
92180## Quick Start
93181
@@ -104,39 +192,66 @@ robocoin-html/
104192
105193### 1. Filter Datasets
106194
107- Click the ** Filters** button to open the filter panel:
108- - Select scene type
109- - Select robot model
110- - Select end-effector
111- - Select action type
112- - Select object (supports hierarchical selection)
195+ Click the ** "Filter datasets"** button to open the filter panel:
196+ - ** Select filter categories** : Scene, Robot, End-effector, Action, Object
197+ - ** Hierarchical selection** : Expand/collapse object groups for hierarchical filtering
198+ - ** Filter Finder** :
199+ - Press ` Ctrl+F ` or click the search box in the filter panel
200+ - Type to search filter options
201+ - Use ↑/↓ arrow keys or navigation buttons to move between matches
202+ - Matching options are highlighted automatically
203+ - ** View active filters** : The filter button shows the count of active filters
204+ - ** Reset filters** : Click "Reset filters" to clear all active filters
113205
114206### 2. Search Datasets
115207
116- Use the top search box to search datasets by name.
208+ - Use the ** search box** in the top toolbar to search datasets by name
209+ - Search works in real-time and filters the displayed datasets
210+ - Click the ** ×** button to clear the search
117211
118212### 3. Select Datasets
119213
120- - Click cards to select/deselect
121- - Use ** select all** / ** deselect** for batch operations
122- - Selected cards will be highlighted
214+ - ** Single selection** : Click on a video card to select/deselect it
215+ - ** Batch selection** :
216+ - Click ** "Select all datasets"** to select all currently filtered datasets
217+ - Click ** "Deselect all datasets"** to clear all selections
218+ - ** Visual feedback** : Selected cards are highlighted with a border
219+ - ** Selection count** : The toolbar shows the number of selected datasets
123220
124- ### 4. Manage Shopping Cart
221+ ### 4. Manage Shopping Cart (Batch Downloader)
125222
126- - Click ** 🛒 add** to add selected items to cart
127- - Click ** 🗑️ remove** to remove selected items from cart
128- - Click ** 🔄 clear** to clear the cart
223+ The selection panel on the right side shows your shopping cart:
224+ - ** Add to cart** : Selected datasets can be added to the cart (managed automatically)
225+ - ** View cart items** : Scroll through the cart list (supports virtual scrolling)
226+ - ** Remove items** : Click the remove button on individual items
227+ - ** Cart count** : See how many datasets are in your cart
129228
130229### 5. Export Download Commands
131230
132- 1 . Select Hub source (ModelScope or HuggingFace)
133- 2 . Click ** 📋 Copy & Checkout ⬇️** to copy the command
134- 3 . Execute the command in terminal to download datasets
231+ 1 . ** Select Hub source** :
232+ - Toggle between ** HuggingFace** and ** ModelScope** using the hub switch button
233+ - The current hub is indicated by the active state
234+ 2 . ** Generate command** :
235+ - The download command is automatically generated based on cart contents
236+ - View the command in the code output area
237+ 3 . ** Copy command** :
238+ - Click ** "Copy & Checkout"** to copy the command to clipboard
239+ - Execute the command in your terminal to download datasets
135240
136241### 6. Import/Export Selections
137242
138- - Click ** 📤 export .json** to export selection list
139- - Click ** 📋 import .json** to import saved list
243+ - ** Export JSON** :
244+ - Click ** "Export JSON"** to save your current cart as a JSON file
245+ - Useful for sharing selections or saving for later
246+ - ** Import JSON** :
247+ - Click ** "Import JSON"** to load a previously saved selection file
248+ - Restores your cart from the JSON file
249+
250+ ### 7. View Dataset Details
251+
252+ - ** Hover preview** : Hover over a video card to see quick information
253+ - ** Detail modal** : Click on a video card to open a detailed information modal
254+ - ** Video playback** : Videos auto-play on hover (desktop) or on click (mobile)
140255
141256## Contributing
142257
0 commit comments