You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Project Team

Project Description

Problem Statement: Separation of processing logic from presentation layer at the Web UI component in the DSpace application layer.

Problem Elaboration: Although the DSpace three-tier architecture follows the model-view-controller (MVC) architecture, with most of the logic encapsulated in the logic layer, there is still a fair amount of processing logic involved in the Web UI component at the application layer. For example, in the "full.jsp" file under the browse folder of DSpace JSP-UI, there is a thick chunk of scriplet logic embedded from lines 30 to 164.

Solution: *The current proposal is to adopt the *Spring Web MVC framework as a means to enforce the MVC framework architecture and the use of the Freemarker template engine as a means to enforce the amount of logic at the presentation layer.

Freemarker offers an alternative to JSP and JSTL tags in reducing scriplet logic via the use of more data model flexibility, providing the use of customized template snippets via #macro definitions and etc... Freemarker provides a lethal combination with the Spring MVC framework in reducing presentation layer logic by the following breakdown of goals:

Breakdown of goals within Spring MVC framework

Views: Freemarker restricts dynamic content display to the use of Expression Languages variables. $braces"output"braces and certain logic processing via the use of its unique syntax that are ignored by the web browser.

Eg: #if, #assign tags.

Dispatcher Servlet: Dispatcher servlets act as the "front gate" role in identifying urls, and delegating the appropriate controller class to handle the request via bean tags definitions.

Controller classes: To handle request urls from the dispatcher servlet, delegate the appropriate method/class method calls via the use of request/response annotations, correspond in parsing data values to the model component for logic processing, and delegating the appropriate response views. The full path url of the views will be automatically resolved by the dispatcher servlet by gearing it with the appropriate prefix and suffix.

Model and View: Represents a Class to represent a model and view returned by a handler used by a DispatcherServlet. The view can take the form of a reference to a View object, or a String view name which will need to be resolved by a ViewResolver object. The model is a Map, allowing the use of multiple data objects keyed by name. These keys will be utilize by the #assign syntax of Freemarker to provide dynamic content for views.

Model: To ensure that complex logic algorithms computation is handled entirely at the business logic layer. For example, session beans, web services.

Project Timeline

Before April 20:

  • Installation of DSpace with netbeans
  • Initiate contact with the Mentor to confirm the specific milestones required in the project development
  • Initiate contact with the Mentor on the specific skill sets required for this project
  • To code a complete Spring Web MVC application with Netbeans
  • To read up the DSpace API documentation

April 20 – May 23 (Before the official coding time):

  • To remain in contact with the mentor via email and IRC and to clarify existing doubts in the process of learning and discovery about DSpace.
  • Continue reading up on DSpace API documentation, especially the specific required components
  • To re-model previous enterprise applications based on the Spring MVC framework
  • Using of FreeMarker engine for presentation layer code generation
  • Understanding the webmvc module
  • Understanding GIT functionalities to commit code to GitHub. 

May 23 – June 18 (Official coding period starts):

  • Understanding the project objectives of the first phase deliverables
  • Understanding webmvc module
  • Coding on the first phase deliverables
  • Assisting in webmvc system documentation
  • Weekly pull request to commit forked copy from robertqin/webmvc to dspace/webmvc
  • Recoding all logic from the JSP (Method call handlers) into relevant Servlets and applying the use of the Freemarker syntax.
  • System documentation
  • Reporting of any system bugs and errors on https://jira.duraspace.org/browse/DWMVC
  • Weekly scrum with mentor on progress statuses including clarification on any existing doubts

June 18 – July 5:

  • Progressive unit testing on the previous milestone deliverable
  • Post implementation review of the previous milestone deliverable
  • Coding on the next mile stone deliverable
  • Weekly pull request to commit forked copy from robertqin/webmvc to dspace/webmvc
  • Assisting in webmvc system documentation
  • System documentation
  • Reporting of any system bugs and errors on https://jira.duraspace.org/browse/DWMVC
  • Weekly scrum with mentor on progress statuses including clarification on any existing doubts

JULY 6th MID TERM EVALUATION

July 6 – July 15:

  • To prepare a presentation report to update developers on the developed functionalities, exceptions and bugs encountered
  • Make further changes in the code to improve the Functionality, Exception handling, Bug Removal.
  • Weekly pull request to commit forked copy from robertqin/webmvc to dspace/webmvc
  • To maintain contact with the developers and to update them on the progress
  • Consultation with the mentor on the next phase of milestones deliverables
  • Assisting in webmvc system documentation
  • Coding on the second phase deliverable
  • Phase 2 system documentation

July 15 – July 25:

  • To be in constant touch with the developers and to let them know about our progress.
  • Progressive unit testing on the previous milestone deliverable
  • Post implementation review of the previous milestone deliverable
  • Coding on the next mile stone deliverable
  • Assisting in webmvc system documentation
  • Most of the time will be consumed for rigorous testing and bug fixes. 
  • Coding on phase three deliverables
  • Phase 3 system documentation

July 25 – July 31:

  • Post implementation review

A Buffer of two weeks has been kept for any unpredictable delay.

NOTE: Require webmvc documentation and update dspace 1.7.0 API library. 

  • No labels