# 🔮 Future Roadmap ## 🚧 Technical Debt & Improvements ### Error Handling - **Ingestion Robustness**: Currently, `DataIntegrityViolationException` is ignored during scanning. A more detailed logging or reporting mechanism for skipped files would be beneficial. - **Path Handling**: Move away from string concatenation for paths (e.g., `"images" + "/" + ...`) to `java.nio.Path` resolution to ensure cross-platform compatibility (Windows vs Linux separators). ### Performance - **Caching**: Implement Spring Cache for `getPagedPhotos` and `getRandomPhotos` to reduce database load. - **Batch Processing**: The current scanning process saves photos one by one. Implementing `saveAll()` with batching would significantly speed up large library imports. ## ✨ Planned Features ### AI Integration - **Auto-Tagging**: Re-enable and implement the `taggingService` (currently commented out in `PhotoService`) to automatically generate tags using a local ML model or cloud API. - **Face Recognition**: Group photos by detected faces. ### User Experience - **Dark Mode**: Toggle between light and dark themes. - **Multi-Select**: Allow selecting multiple photos for batch tagging or deleting. - **EXIF Editing**: Allow users to manually update incorrect EXIF data via the UI. ### Backend - **Cloud Storage**: Add an abstraction layer to support S3 or Azure Blob Storage instead of just local file systems. - **User Accounts**: Add Spring Security to support multiple users with private galleries. ## 🧪 Testing - **Unit Tests**: Add JUnit 5 tests for `PhotoService` logic. - **Integration Tests**: Test the full ingestion flow with temporary directories. --- > **Note**: This document serves as a living roadmap. Priorities may change based on user feedback and technical requirements.