Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖼️ Pinacoteca

A modern digital platform for managing and exploring a virtual art gallery!

Java Spring Boot Angular PostgreSQL Docker Node.js Status Platform


📖 Project Overview

Pinacoteca is a comprehensive web platform designed to manage and explore an online art gallery.
It allows visitors to browse exhibits, curators to manage artworks and artists, and administrators to oversee the entire system.

The project is built with Java (Spring Boot) for the back-end, Angular for the front-end, and PostgreSQL as the database engine.


🎯 Main Features

👤 Guest Users

  • Browse exhibitions and gallery rooms
  • View details of artworks and artists

🔐 Registered Users

  • Access the gallery with a personalized experience
  • Save favorite artworks and exhibitions (feature under development)

🧑‍🎨 Curators

  • Manage the content of their assigned gallery rooms
  • Add, edit, or remove artworks and artists
  • Update room descriptions and exhibit details

🛡️ Administrators

  • Full control of the platform
  • Add, edit, or delete artworks, artists, and rooms
  • Manage and ban registered users
  • Assign or remove curator privileges
  • Oversee the entire gallery system

🛠️ Technologies Used

Back-End

  • Java + Spring Boot
  • PostgreSQL
  • JWT Authentication
  • Role-Based Authorization (Admin, Curator, User, Guest)
  • Custom Error Handling
  • OpenAPI for RESTful documentation
  • Entity Pagination for optimized database queries
  • Docker for the email notification service

Front-End

  • Angular
  • HTML, CSS
  • Bootstrap, Tailwind, Flowbite, Angular Material
  • Google Maps API (optional: for location-based exhibits)

⚙️ System Requirements

  • Java 17+
  • Node.js 18+ and npm
  • Angular CLI
  • PostgreSQL
  • Docker (for the email service)

🚀 Installation Guide

1️⃣ Clone the Repository

git clone https://github.com/tuo-username/Pinacoteca.git
cd Pinacoteca

2️⃣ Configure the Database

⚠️ Make sure PostgreSQL is installed on your system.

CREATE DATABASE pinacoteca
  • Then update the application.properties file with your PostgreSQL credentials.

3️⃣ Configure Docker

⚠️ Ensure Docker is installed and running on your system. You can install MailDev from DockerHub or directly from its repository: 🔗 https://github.com/maildev/maildev

  • Start Docker
  • Launch the MailDev container
  • Update the application.properties file with the container IP and listening port

4️⃣ Run the Back-End

cd backend
./mwn spring-boot:run

5️⃣ Install and Run the Front-End

cd frontend
npm install
ng serve

Developed with ❤️ by Passluk

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages