PhotoGallery/README.md

2.4 KiB

PhotoGallery

Java Spring Boot Bootstrap License

PhotoGallery is a responsive and dynamic web application built with Spring Boot and Thymeleaf. It features a modern masonry-style layout for organizing images of varying sizes, optimized for performance and usability across desktop and mobile devices.

Features: - Masonry Grid Layout: Automatically arranges images of different sizes in an aesthetically pleasing masonry-style grid. - Lazy Loading: Images load as you scroll for faster initial load times and better performance. - Fullscreen Modal Viewer: Click an image to view it in fullscreen with previous/next navigation. - Responsive Design: Fully mobile-friendly using Bootstrap 5. - Dynamic Image Loading: Supports adding new images dynamically from the backend without changing frontend code. - Hover Effects: Smooth zoom and shadow effects for a modern look.

🌟 Features

\ No newline at end of file

  • Masonry Grid Layout: Automatically arranges images of different aspect ratios in an aesthetically pleasing grid.
  • Lazy Loading: Images load asynchronously as you scroll, ensuring fast initial page loads.
  • Smart Ingestion: Scans local directories to automatically compress images, generate thumbnails, and extract metadata (EXIF).
  • Fullscreen Viewer: Immersive modal viewer with navigation controls.
  • Search & Filter: Search photos by title or tags.
  • Metadata Extraction: Automatically extracts and displays camera details, resolution, and file size.
  • Responsive Design: Built with Bootstrap 5 for a seamless mobile experience.

🚀 Getting Started

Prerequisites

  • Java 17 or higher
  • Maven (wrapper included)

Configuration

Configure your image paths in src/main/resources/application.properties:

photogallery.paths.originals=/path/to/your/images
photogallery.paths.thumbnails=/path/to/your/thumbnails

Running the Application

Use the included Maven wrapper to run the application:

# Linux/macOS
./mvnw spring-boot:run

# Windows
mvnw.cmd spring-boot:run

Access the gallery at http://localhost:8080.

📚 Documentation

See documentation.md for architectural details and stack.md for the technology stack.