A web platform that facilitates the management of artists, exhibitions, and artworks, offering a modern and organized administration system for art galleries.
Built with Spring Boot, Thymeleaf, and PostgreSQL, fully deployed as web services on Render.
This project provides two access modes:
- Administrator - full management of artists, exhibitions, and artworks.
- Visitor - ability to explore artworks, artists, and gallery information.
It integrates both a web interface and RESTful services, ensuring a seamless and secure experience for users and administrators.
- Complete CRUD management for artists, artworks, and exhibitions.
- User authentication and authorization using Spring Security.
- Responsive web interface with Thymeleaf and Tailwind CSS.
- Database persistence using JPA/Hibernate with PostgreSQL.
- RESTful API endpoints for modular integration.
- Integrated Docker support for easy deployment.
- Database and application hosted on Render.
Core Technologies
- 🧩 Spring Boot 3.3.5
- ☕ Java 17
- 🧠 Spring Data JPA
- 🕸️ Spring MVC
- 🔐 Spring Security 6.1.4
- 🎨 Thymeleaf
- 🐘 PostgreSQL
Development Tools
- ⚙️ Maven - dependency management and build
- 🧱 Lombok - reduce boilerplate code
- 🧪 Spring Boot DevTools & Test - development and testing utilities
- 🔗 Apache HttpClient, HttpCore, HttpMime - HTTP communication
- 🧩 Jakarta Validation API - data validation
- 🔒 Thymeleaf Extras Spring Security 6 - security integration
Frontend & Design
- 🎨 Figma — UI design
- 💅 Tailwind CSS, HTML, CSS
The project follows an MVC architecture (Model–View–Controller) with a clear separation of concerns:
Sistema-Galeria/ ├── src/ │ ├── main/ │ │ ├── java/com/usta/sistemagaleria/ │ │ │ ├── BD/ # Database configuration │ │ │ ├── controllers/ # MVC controllers │ │ │ ├── entities/ # JPA entities │ │ │ ├── handler/ # Custom handlers │ │ │ ├── models/ # Data models │ │ │ ├── security/ # Security configuration │ │ │ ├── MvcConfig.java # MVC configuration │ │ │ └── SistemaGaleriaApplication.java # Main application │ │ └── resources/ │ │ ├── static/ │ │ │ ├── css/ # Stylesheets │ │ │ ├── images/ # Static images │ │ │ └── js/ # JavaScript files │ │ ├── templates/ # Thymeleaf templates │ │ │ ├── artistas/ # Artists views │ │ │ ├── comentarios/ # Comments views │ │ │ ├── exposiciones/ # Exhibitions views │ │ │ ├── layout/ # Base layouts │ │ │ ├── obras/ # Artworks views │ │ │ ├── error404.html # Error 404 page │ │ │ ├── error500.html # Error 500 page │ │ │ ├── index.html # Main page │ │ │ ├── login.html # Login page │ │ │ └── register.html # Registration page │ │ └── application.properties # Application configuration ├── target/ # Compiled files ├── .idea/ # IDE configuration └── .mvn/ # Maven configuration