I am looking for help establishing a documented J2EE framework for development of a custom web application. Project is for detailed installation instructions of technology stack (described below) and components for testing basic CRUD operations using this framework. Components should utilize repeatable design and code patterns for use as template for future development.
There will be potential for a significant degree of add-on work for the selected developer, so anticipate questions during the bidding process. This task is largely intended to prove design and coding skills with the intent of recruiting a senior developer or an architectural lead for addional work on a large scale development project currently in the prototyping phase.
The deliverables would entail the following:
1) Detailed installation guide for technology stack comprised of the following 3rd party components:
a) UI Layer -> Tapestry
b) Abstraction/Service Locater Layer -> Spring
c) Data Access Layer -> Either Hibernate or Ibatis
d) Database -> JDBC to MySQL or any open source DB
Must use latest available fully tested version of each component available on their respective web sites. Instructions must be comprehensive and list any dependent libraries and installation steps. Instructions should be able to be followed and will be verified by entry level developer. Will be using Eclipse and JBoss application server.
2) Coded example showing full set of CRUD operations of a single database entity and a 1-many relationship of related entities. Developer can use whatever database entities they wish, but must be able to query and select both (in a drill-down fashion for the related entitiy). This should all be driven from basic Tapestry enabled UI forms going through each level of the framework. This is intended to test the framework and establish well-coded design patterns. Data Access Object must be retrieved through Spring and expose an interface. Scripts must be provided to create tables. Data Object Interfaces must only expose get/set methods.
3) Coded example of a batch update, initiated from the UI that uses Spring to provide interface to a "business service" which processes this task. The actual implementation behind the interface can be a POJO and must also use Spring to retrieve any Data Access Objects.
Items 2 and 3 must be delivered in a WAR file with detailed installation instructions on how to install in Eclipse. This again will be verified by an entry level developer.
Attached diagram gives visual of suggested component architecture and interface dependencies. As a basic rule, classes can only import interfaces, no direct dependencies on any layer of the framework. The primary goal here is to establish patterns for design and code of actual data access and business objects.
Payment for these deliverables will be broken down as follows:
* 5% upon completion and verification of installation guide
* 20% upon delievery and review and verification of code and installation instructions
* 75% upon final delivery and approval meeting all of the requirments above and following additional criteria:
1) Code is professionally written
2) Code is commented well
3) Code only imports interfaces to services and data access objects
4) Documented design patterns and easily adaptable code that can be applied to a variety of DAOs and Business Services.
Where not addressed above, deliverables must meet the following:
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).