Go to file
Michael Mainguy 5c3ad988f5 Add duplicate detection, conflict handling, and fix pagination issues
- Add photo_conflicts table for files with same path but different content
- Implement SHA256-based duplicate detection in file scanner
- Add conflict detection methods to PhotoService
- Skip identical files with info logging, store conflicts with warnings
- Fix infinite scroll pagination race conditions with functional state updates
- Add scroll throttling to prevent rapid API calls
- Enhance PhotoThumbnail with comprehensive EXIF date/time display
- Add composite React keys to prevent duplicate rendering issues

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-27 10:55:28 -05:00
.idea Initial Next.js photo gallery application 2025-08-26 13:24:38 -05:00
src Add duplicate detection, conflict handling, and fix pagination issues 2025-08-27 10:55:28 -05:00
.gitignore Add SQLite database and directory management system 2025-08-26 14:26:55 -05:00
CLAUDE.md Initial Next.js photo gallery application 2025-08-26 13:24:38 -05:00
next.config.js Add photo scanning with EXIF metadata extraction and thumbnail caching 2025-08-27 08:35:07 -05:00
package-lock.json Add photo scanning with EXIF metadata extraction and thumbnail caching 2025-08-27 08:35:07 -05:00
package.json Add photo scanning with EXIF metadata extraction and thumbnail caching 2025-08-27 08:35:07 -05:00
postcss.config.mjs Initial Next.js photo gallery application 2025-08-26 13:24:38 -05:00
README.md Improve directory modal with keyboard navigation and README 2025-08-26 14:03:36 -05:00
tsconfig.json Initial Next.js photo gallery application 2025-08-26 13:24:38 -05:00

Photos Gallery

A Next.js application for displaying and organizing photos.

Prerequisites

macOS CIFS Share Access

If you're running this application on macOS and accessing photos from a mounted CIFS share, you'll need to grant your terminal application full disk access:

  1. Open System PreferencesSecurity & PrivacyPrivacy
  2. Select Full Disk Access from the left sidebar
  3. Click the lock icon and enter your password to make changes
  4. Click the + button and add your terminal application (e.g., Terminal.app, iTerm2, etc.)
  5. Restart your terminal application

This is required because macOS restricts access to network-mounted drives without explicit permission.

Getting Started

npm install
npm run dev

Open http://localhost:3000 in your browser.