Download Latest Version prodigy-1.0.0.7z (167.1 kB)
Email in envelope

Get an email when there's a new version of Prodigy - Product Image Gallery

Home / 1.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.txt 2014-03-16 4.7 kB
prodigy-1.0.0.7z 2014-03-16 167.1 kB
Totals: 2 Items   171.8 kB 1
Prodigy - Product Image Gallery, version 1.0.0
Copyright (C) 2012-2014  Salvatore ISAJA

-------------------------------------------------------------------------------
About
-------------------------------------------------------------------------------

Prodigy (portmanteau of PRODuct Image GallerY) is a simple Java EE 6 web
application to showcase products defined in an enterprise software.
Access to product images of several types is restricted to authorized users.
Features include automatic watermark overlay and image selection for download
as zip archive. An administration interface is included to manage users,
product categorization and settings.

I have developed it primarily to teach myself how Jave EE 6 works. It uses:
- JSF 2 as the presentation layer;
- PrimeFaces 3 as a JSF component library;
- EJB 3 as business logic and database access layer;
- CDI as dependency injection mechanism;
- JPA 2 as data model layer.

Currently supported database include H2, Postgres, MySQL and Oracle, but it
should be trivial to add more as JPA allows the code to remain neutral with
respect to the underlying DBMS and as long as the script for database creation
is included in the net.sf.prodigygallery.install package.

I know the code could be better structured: please be forgiving, this was my
first attempt to be productive with such technology. Any constructive criticism
is welcome.

-------------------------------------------------------------------------------
Dependencies
-------------------------------------------------------------------------------

I've strived to use only standard Java EE 6 libraries, thus there are very few
dependencies on third party libraries. They include:
- Apache Commons Codec for hashing functions (tested against 1.6)
  http://commons.apache.org/proper/commons-codec/
- Apache Commons IO for file utility (tested against 2.4)
  http://commons.apache.org/proper/commons-io/
- JBoss Seam Faces to allow the use of the JSF View Scope in CDI applications
  even on JSF 2.1 (native support is provided in JSF 2.2)
  (tested against 3.1.0.Final)
  http://www.seamframework.org/Seam3/DistributionDownloads
- PrimeFaces 3 (tested against 3.3)
  http://primefaces.org/downloads

-------------------------------------------------------------------------------
Installation
-------------------------------------------------------------------------------

Compile the project to a WAR archive, then follow the instructions in the
included INSTALL.odt file to deploy it to your application server
(GlassFish 3.1.2 tested) and initialize the application.

-------------------------------------------------------------------------------
Known issues
-------------------------------------------------------------------------------

Due to an issue with PrimeFaces' selectCheckboxMenu, selection of roles and
allowed image types for a person are currently disabled (see the commented
out lines near the bottom of admin/person.xhtml).

-------------------------------------------------------------------------------
Future work
-------------------------------------------------------------------------------

I'm not very happy with the new PrimeFaces' release policy, where minor
versions are not released to the community, but only to paying elite members.
Thus, I'd like to switch to RichFaces 4 (or the promising RichFaces 5) as I've
already done on other projects at work.

Instead of using PrimeFaces' streamed content to serve images, a RESTful web
service would be used, based on JAX/RS. This is something I've already done
on other projects at work with good results.

An idea I'd like to explore is replacing the JSF frontend with a rich
JavaScript framework, such as AngularJS, using again JAX/RS web services
as an interface with the backend (still CDI/EJB/JPA based). I've doing little
experimentation with this, but it seems very promising.

-------------------------------------------------------------------------------
License
-------------------------------------------------------------------------------

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>
Source: README.txt, updated 2014-03-16