Skip to content

Full-stack art gallery platform using Java EE, PostgreSQL, and MVC architecture. Includes user authentication, artwork management, e-commerce, event organization, and custom validation framework

Notifications You must be signed in to change notification settings

matteoamagliani/PAINT_WebApp_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PAINT: Virtual Art Gallery Web Application

Top Language Languages Count Last Commit

Java Servlet Maven Apache Tomcat PostgreSQL JavaScript CSS3 HTML5

Overview

PAINT is a full-stack web application designed to serve as a virtual art gallery platform. The system facilitates interaction between various user types (artists, galleries, regular users) who can create profiles, showcase artwork, purchase pieces, and commission new works. Art galleries can invite artists and showcase events, fostering a vibrant online art community.

The application is built on a robust back-end database structure ("ArtBase") developed during the Foundations of Databases course, providing a solid foundation for the web application's functionality.

Features

  • User Authentication & Profiles

    • Secure login and registration system
    • Different user roles (artist, art gallery, generic user, business user)
    • Customizable user profiles with profile pictures
  • Art Content Management

    • Artists can upload and showcase artwork with detailed information
    • Support for multiple images per art piece
    • Tagging system for categorization of art
  • Social Interaction

    • Follow system for users to track favorite artists and galleries
    • Rating and review system for art pieces and events
    • Content recommendation engine
  • E-commerce Capabilities

    • Art piece advertisements with pricing
    • Order management system
    • Shipping and delivery tracking
  • Event Management

    • Art galleries can create and promote events
    • Artists can participate in events
    • Event review system

Technology Stack

  • Back-end: Java with Jakarta EE
  • Database: PostgreSQL
  • Logging: Log4j 2
  • Authentication: Custom token-based authentication
  • Build Tool: Maven
  • Web Server: Apache Tomcat
  • Frontend: JSP, HTML, CSS, JavaScript
  • Input Validation: Custom validation framework

Project Structure

The application follows the Model-View-Controller (MVC) architecture:

  • src/main/java/it/unipd/dei/webapp/resource/: Model classes representing domain entities
  • src/main/java/it/unipd/dei/webapp/dao/: Data Access Objects for database operations
  • src/main/java/it/unipd/dei/webapp/servlet/: Controllers handling HTTP requests
  • src/main/java/it/unipd/dei/webapp/filter/: HTTP filters for request handling and authorization
  • src/main/java/it/unipd/dei/webapp/util/: Utility classes for common operations
  • src/main/java/it/unipd/dei/webapp/validation/: Input validation framework
  • src/main/webapp/jsp/: JSP views for rendering HTML
  • src/main/webapp/html/: Static HTML pages
  • src/main/webapp/media/: Media files used in the application
  • src/main/database/: SQL scripts for database setup

Setup and Installation

Prerequisites

  • Java 20 or higher
  • PostgreSQL database
  • Apache Tomcat 10 or higher
  • Maven

Application Configuration

  1. Configure database connection parameters in src/main/webapp/META-INF/context.xml
  2. Build the project: mvn clean package
  3. Deploy the generated WAR file to Tomcat

Usage

Once deployed, the application can be accessed through a web browser at: http://localhost:8080/PAINT/

Different user types will have access to different functionality:

  • Regular users can browse and purchase art
  • Artists can upload and showcase their work
  • Galleries can organize events and invite artists
  • Business users have additional commerce capabilities

Documentation

Generating Javadoc

API documentation can be generated using:

mvn javadoc:javadoc

Accessing Javadoc

After generating the Javadoc, you can access it in two ways:

  1. Direct file access: Open the following file in your web browser:

    target/site/apidocs/index.html
    

    or

    javadoc/apidocs/index.html
    

    depending on your Maven configuration.

  2. Command line (Windows):

    start target\site\apidocs\index.html
    

    or

    start javadoc\apidocs\index.html
    

Javadoc Content

The documentation provides comprehensive information about:

  • All classes and interfaces
  • Methods and their parameters
  • Relationships between classes
  • Validation framework usage
  • DAO pattern implementation
  • Servlet lifecycle and request handling

Validation Framework

The application includes a custom validation framework in the it.unipd.dei.webapp.validation package. This framework:

  • Provides methods for validating various data types
  • Uses a fluent interface for building validation rules
  • Returns detailed validation messages for invalid input
  • Integrates with the model classes via the Validatable interface

Contributors

This project has been developed by:

  • Tommaso Leoni
  • Matteo Amagliani
  • Matteo Peri
  • Daniele Francescato
  • Nicolo Stefani

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

© 2025 Department of Information Engineering (DEI), University of Padua, Italy

About

Full-stack art gallery platform using Java EE, PostgreSQL, and MVC architecture. Includes user authentication, artwork management, e-commerce, event organization, and custom validation framework

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5