How rapabru/offline-disk-caalog works
Offline Disk Catalog is an Electron desktop app for registering removable volumes, indexing their contents, and searching and organizing media while drives may be offline. The main workflow runs from disk registration and scanning through metadata extraction and local catalog storage, then into browsing, filtering, duplicate review, and classification. The README also documents incremental change detection, animated video previews, batch file actions, and PIN protection. Some Electron modules are present in the tree but their source was not sampled, so their links reflect documented capabilities only where noted; uncertain call wiring is omitted.
Main entry points: App.tsx Application shell · main.ts IPC handlers · preload.ts Preload API · db.ts Catalog database
Components 23
Desktop interface
- Application shell
src/App.tsx - Sign-in screen
src/components/auth/AuthPage.tsx - Disk management
src/components/disks - Catalog browser
src/components/catalog/CatalogView.tsx - Search filters
src/components/search/SearchFilterView.tsx - Classification views
src/components/classification/ClassificationView.tsx - People view
src/components/people/PeopleView.tsx - Places view
src/components/places/PlacesView.tsx - Duplicate review
src/components/duplicates/DuplicatesView.tsx - PIN lock
src/components/common/AppLockModal.tsx - Language context
src/context/LanguageContext.tsx
Disk indexing
- Disk indexer
electron/indexer.ts - Volume detection
electron/diskDetector.ts - Metadata extraction
electron/metadataExtractor.ts - Tag classifier
electron/autoClassifier.ts
Catalog and media
- Thumbnail generation
electron/thumbnailGenerator.ts - Catalog database
electron/db.ts - Duplicate detection
electron/main.ts
Media organization
- Places classification
src/components/places/PlacesView.tsx
Electron runtime
- IPC handlers
electron/main.ts - Preload API
electron/preload.ts
Other components
- User
- Media files
Connections 32
- User → Application shell: uses
- Application shell → Sign-in screen: shows
- Application shell → Disk management: renders
- Application shell → Catalog browser: renders
- Application shell → Search filters: renders
- Application shell → Classification views: renders
- Application shell → People view: renders
- Application shell → Places view: renders
- Application shell → Duplicate review: renders
- Application shell → PIN lock: renders
- Catalog browser → Preload API: requests files
- Search filters → Preload API: requests filters
- People view → Preload API: requests tagged files
- Duplicate review → Preload API: requests duplicate actions
- Disk management → Preload API: disk commands
- Preload API → IPC handlers: forwards IPC
- IPC handlers → Catalog database: reads and writes
- IPC handlers → Volume detection: checks volumes
- IPC handlers → Metadata extraction: hashes files
- IPC handlers → Tag classifier: learns fingerprints
- IPC handlers → Duplicate detection: queries duplicate hashes
- Disk indexer → Media files: scans files
- Disk indexer → Catalog database: stores index
- Metadata extraction → Media files: extracts metadata
- Thumbnail generation → Media files: generates previews
- Catalog browser → Media files: loads previews
- Volume detection → Media files: checks connected drives
- Tag classifier → Catalog database: stores tag learning
- Duplicate detection → Catalog database: reads hashes
- Classification views → Catalog database: organizes catalog
- Places view → Catalog database: filters GPS media
- Application shell → Language context: provides translations