How maciekrt/membrane-hub works
Membrane Hub combines a Python image-processing dispatcher with a Next.js interface for dataset discovery, viewing, uploads, and segmentation-related routes. The visible backend workflow accepts work through the dispatcher, which queues Google Drive downloads and invokes segmentation routines; rendering and dataset metadata are separate processing capabilities. The viewer builds image galleries from dataset metadata. Several routes and standalone workflows are present in the tree but were not excerpted, so their internal calls are not asserted here.
Main entry points: dispatcher.py Job dispatcher · standalone_processing.py Standalone processing · index.js Dataset home · serverImages.js Image assembly
Components 24
Processing backend
- Job dispatcher
membrane-dispatcher/dispatcher.py - Drive downloader
membrane-dispatcher/GoogleDriveAPI/downloader.py - Dataset metadata
membrane-dispatcher/processing/datasets_processing.py - Archive extraction
membrane-dispatcher/processing/unzipper.py - Segmentation runner
membrane-dispatcher/segmentation/run_segmentation.py - 2D segmentation
membrane-dispatcher/segmentation/run_segmentation_2d.py - Standalone processing
membrane-dispatcher/standalone_processing.py - Standalone segmentation
membrane-dispatcher/standalone_segmentation.py - Image renderer
membrane-dispatcher/rendererMembrane/image_renderer.py - Headless renderer
membrane-dispatcher/rendererMembrane/headless_renderer.py
Dataset viewer
- Dataset home
membrane-viewer-js/pages/index.js - Dataset list
membrane-viewer-js/components/listDatasets.js - Image gallery
membrane-viewer-js/pages/viewer/[...dataset].js - Image assembly
membrane-viewer-js/lib/serverImages.js - Dataset access
membrane-viewer-js/lib/serverDatasets.js - Access checks
membrane-viewer-js/lib/security.js
Web APIs
- Dataset API
membrane-viewer-js/pages/api/datasets/[...ownerData].js - Image API
membrane-viewer-js/pages/api/images/[...imagePath].js - Segmentation API
membrane-viewer-js/pages/api/segmentation/list/[...listCmd].js - Upload routes
membrane-viewer-js/pages/api/upload.js - Scratchpad workflow
membrane-viewer-js/pages/api/uploadScratchpad.js - Scratchpad data
membrane-viewer-js/pages/api/scratchpadData.js - Scratchpad processing
membrane-viewer-js/lib/processScratchpad.js
Other components
- Researcher
Connections 21
- Researcher → Dataset home: browses
membrane-viewer-js/pages/index.js - Dataset home → Dataset list: renders
membrane-viewer-js/pages/index.js - Dataset home → Dataset API: fetches datasets
- Dataset list → Image gallery: opens dataset
membrane-viewer-js/components/listDatasets.js - Image gallery → Image assembly: loads image data
membrane-viewer-js/pages/viewer/[...dataset].js - Image assembly → Image API: references image URLs
membrane-viewer-js/lib/serverImages.js - Image assembly → Access checks: uses helper
- Dataset API → Dataset access: uses dataset service
membrane-viewer-js/pages/api/datasets/[...ownerData].js - Dataset API → Access checks: checks access
membrane-viewer-js/pages/api/datasets/[...ownerData].js - Image API → Access checks: checks access
membrane-viewer-js/pages/api/images/[...imagePath].js - Scratchpad workflow → Scratchpad processing: processes data
- Scratchpad data → Scratchpad processing: uses processor
membrane-viewer-js/pages/api/scratchpadData.js - Researcher → Job dispatcher: submits work
- Job dispatcher → Drive downloader: queues download
membrane-dispatcher/dispatcher.py - Job dispatcher → Segmentation runner: runs segmentation
membrane-dispatcher/dispatcher.py - Job dispatcher → 2D segmentation: dispatches segmentation
membrane-dispatcher/dispatcher.py - Image renderer → Headless renderer: creates renderer
membrane-dispatcher/rendererMembrane/image_renderer.py - Standalone processing → Dataset metadata: uses processing
membrane-dispatcher/standalone_processing.py - Standalone processing → Segmentation runner: invokes segmentation
membrane-dispatcher/standalone_processing.py - Standalone processing → Image renderer: uses renderer
- Standalone segmentation → Standalone processing: delegates processing
membrane-dispatcher/standalone_segmentation.py