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.
Focusing on simplicity, usability, and a clean user experience.
@Async)java.nio for local file managementThe project follows a standard Spring Boot application structure:
src/main/java/com/example/PhotoGallery: Root package.
Controllers: Contains Spring MVC controllers for handling web requests.Services: Houses business logic, such as fetching project data from Gitea and sending emails.DTO: Data Transfer Objects used to shape data for the views.Component: Contains general-purpose components, like the Markdown service.src/main/resources:
static: For static assets like CSS, JavaScript, and images.templates: Contains Thymeleaf HTML templates.application.properties: For application configuration.I am constantly looking to evolve the PhotoGallery. Here is what is currently on my development roadmap:
getPagedPhotos and getRandomPhotos to reduce database load.saveAll() with batching would significantly speed up large library imports.taggingService (currently commented out in PhotoService) to automatically generate tags using a local ML model or cloud API.Walkthrough Video Coming Soon