Name | Modified | Size | Downloads / 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/>