A web application for browsing, analyzing, and verifying images grouped by cluster ID from a CSV file.
- Browse images grouped by cluster ID with intuitive navigation
- Sort clusters by size (most images to least)
- View clusters in batches with pagination controls
- Click anywhere on a cluster header to zoom in on that specific cluster
- Adjust thumbnail size with a slider for optimal viewing
- Query images using JavaScript expressions (e.g., "bucket < 15")
- Mark matching images that satisfy query conditions
- Filter to show only clusters containing matching images
- View image metadata including condition and case ID information
- Select images within clusters for verification
- Export verified clusters to a new CSV file
- Track verification status with visual indicators
- Create remainder clusters for unselected images
- Mark selected images as duplicates within clusters
- Assign duplicate groups with color-coded visual indicators
- Group-based selection (selecting one image in a duplicate group selects all)
- Reset duplicate markings as needed
- Export duplicate group information in the CSV output
-
Install and start the server:
npm install npm start
-
Open your browser to
http://localhost:3000
-
Upload a CSV file with image paths and cluster IDs
-
Explore clusters using the navigation controls
Required columns:
local_path
: Full path to the image filecomponent
: Cluster ID (numeric)
Optional columns:
name
: Image namecondition
: Classification or categoryhashed_case_id
: Case identifierimage_source
orimage.source
: Source of the image (supports both column names)- Any additional columns can be used in queries
- Built with Node.js Express, vanilla JavaScript, HTML, and CSS
- Serves images directly from their absolute paths
- Supports filtering and advanced query expressions
- Optimized for browsing large sets of clustered images
The application follows a modular architecture with the following files:
index.html
- Main HTML structure and entry pointstyles.css
- CSS styling for the applicationserver.js
- Express server for serving files and images
-
script.js
- Main entry point and application coordination- Initializes all modules
- Sets up event listeners
- Coordinates between modules
-
data.js
- Data processing and state management- CSV file parsing and processing
- Data structure definitions
- State management
- Data transformation and organization
-
ui.js
- UI components and rendering- Cluster and image rendering
- Modal creation and handling
- DOM element creation and management
- UI updates and manipulation
-
features.js
- Application features and functionality- Navigation and pagination
- Query and filtering system
- Verification workflow
- Duplicate management
- Export functionality