Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Project

DSpace Submission Enhancements

Student

Gaurav Kejriwal

Mentors

Technologies

Submission UI,
etc.

Proposal

Melange

Location for project Link to Source Code goes here

Project Description

Of all configuration DSpace has, item-submission.xml is one which end-users would continuously want to be changing because different repository administrators would want different submission workflow .The logic to do so is simple enough that they could do it. But, being an xml file on the server gets in the middle of that. At the moment, repository admins can edit their metadata registries, bitstream format registries, etc. but still have to wait for the system administrator when they want to map a collection to a new workflow in item-submission.xml for workflow modification. 
This project seeks to get rid of these xml files and make the equivalent with Database tables and User Interfaces for the end-user.

Original Proposal

Introduction:

This is a proposal to further continue the work on the topic on which I worked in GSOC in 2009 summer and take it to the point that it can be integrated and brought into the next version of Dspace.

...

For solving the problem of modification of submission workflow we can have a *'Edit Workflow Page' *where the admin can select the list of steps and their order(priority) to be taken for that collection through a UI. Here, also we can give an option for admin to upload the desired workflow in xml format which will ultimately be updated in the database.

unmigrated-wiki-markup
Note
#
  1. We
  1. will
  1. need
  1. to
  1. define
  1. a
  1. Domain
  1. Model
  1. for
  1. representing
  1. the
  1. Submission
  1. Workflow
  1. and
  1. its
  1. steps
  1. in
  1. such
  1. a
  1. way
  1. as
  1. to
  1. allow
  1. it
  1. to
  1. be
  1. persistable
  1. in
  1. the
  1. database.
  1. An
  1. initial
  1. Model
  1. would
  1. have
  1. JAVA
  1. classes
  1. defined
  1. in
  1. Spring
  1. Workspace
  1. Service.
##
    1. Step:
    1. A
    1. physical
    1. Step
    1. with
    1. logic
    1. currently
    1. defined
    1. in
    1. Java
    1. code.
##
    1. Action:
    1. One
    1. or
    1. more
    1. Actions
    1. are
    1. the
    1. possible
    1. outcomes
    1. of
    1. the
    1. execution
    1. of
    1. the
    1. step
    1. and
    1. represent
    1. Tasks
    1. that
    1. may
    1. be
    1. completed
    1. prior
    1. to
    1. the
    1. Item
    1. transitioning
    1. to
    1. another
    1. step.
##
    1. Role:
    1. A
    1. Group
    1. of
    1. Individuals
    1. that
    1. are
    1. alerted
    1. to
    1. and
    1. participate
    1. in
    1. the
    1. completion
    1. of
    1. a
    1. Step.
##
    1. UserSelectionMethod:
    1. A
    1. View
    1. that
    1. allows
    1. the
    1. user
    1. to
    1. interact
    1. with
    1. the
    1. Step
    1. Executing
    1. Actions.
#
  1. Reviewing
  1. the
  1. Workflow,
  1. we
  1. find
  1. that
  1. the
  1. primary
  1. aggregate
  1. root
  1. of
  1. the
  1. Domain
  1. is
  1. a
  1. configuration
that arranges the relationships between these 4 Domain objects.       {alternate.step.id}\# An initial User interface should provide the user with an ability to select ## One or more steps that will be in a workflow ## Associate Specific Outcomes (status codes) With existing Workflow Steps, Identifying the paths through the workflow. ## Add/Remove EPeople/Groups from Roles associated with the Step # An advanced User Interface may provide ##  the ability to alter the Configuration of what Actions are Associated with the Step ## codes those action may generate.
  1. that arranges the relationships between these 4 Domain objects. 
Code Block

<step id="{step.id}" nextStep="{next.step.id}" userSelectionMethod="{user.selection.bean.id}" role="{role.id}" >
   <!-- optional alternate outcomes, depending on the outcome of the actions you can alter the next step here -->
   <alternativeOutcome>
      <step status="{integer}">{alternate.step.id}</step>
   </alternativeOutcome>
   <action id="{action.bean.id}"/>
   <action id="{action.bean.id.1}"/>
</step>

# An initial User interface should provide the user with an ability to select

    1. One or more steps that will be in a workflow
    2. Associate Specific Outcomes (status codes) With existing Workflow Steps, Identifying the paths through the workflow.
    3. Add/Remove EPeople/Groups from Roles associated with the Step
  1. An advanced User Interface may provide
    1.  the ability to alter the Configuration of what Actions are Associated with the Step
    2. codes those action may generate.

 Other changes which I am interested to work on to improve the submission process is enabling tool-tip on submission fields.

...

I will conduct a Usability survey on the Dspace-mailing list to find the common pains users' users’ face during the submission process in Dspace.Also I will go through the dspace-mailing lists archives to see the common problems faced by the users during the submission process.

List Of tasks :

I'll I’ll achieve the database management of workflow by moving in a parallel framework to that ofmetadata schema registry.

I'll move the item-submission from file based storage to the database and make them manageable via the UI.

I'll I’ll be creating separate db tables for each purpose like tables for storing the processing class and JSPUI binder.

...

First I plan to start with completing the integration of the integration task of "input“input-form DB management ".I will take the suggestions of the community by May end .I will conduct a Usability survey on the Dspace-mailing list to find the common pains users' users’ face during the submission process in Dspace and will discuss the basic project goals with the mentor accordingly.

I will end the integration task by June end.After this I will start the "DB “DB configuration of workflow"workflow”.I will complete the API by midterm evals and start the work of UI development after that.

...

This file contains the beans for the actions and user selection methods referred to in the workflow.xml. In order for the workflow framework to work properly, each of the required actions must be part of this configuration.

unmigrated-wiki-markup
Panel
Code Block

 <bean id="{action.api.id}" scope="prototype"/>
&nbsp;&nbsp;&nbsp;
    <bean id="{action.api.id.2}" scope="prototype"/>

&nbsp;<\
 <!-
\
- Below the class identifiers come the declarations for out actions -->

&nbsp;<bean
 <bean id="{action.id}" scope="prototype">
&nbsp;&nbsp;&nbsp;&nbsp;

     <constructor-arg type="java.lang.String" value="{action.id}"/>

&nbsp;&nbsp;&nbsp;&nbsp;
     <property name="processingAction" ref="{action.api.id}"/>
&nbsp;&nbsp;&nbsp;&nbsp;
     <property name="requiresUI" value="{true/false}"/>
&nbsp;<
 </bean>

UI configuration -

Each bean defined here will have an id which will be the action identifier and the class will a classpath which links to the xmlui class
responsible for generating the User Interface side of the submission-action.
In case an action requires a User Interface class, the workflow framework will look for a UI class in this configuration file.

unmigrated-wiki-markup
Panel
Code Block

 <beans
&nbsp;&nbsp;&nbsp;
    <bean id="{action.id}" scope="prototype"/>
&nbsp;&nbsp;&nbsp;
    <bean id="{action.id.2}" scope="prototype"/>
</beans>

Brief Outline of DB schema- 

...

1.action_id--this will denote the action the submission process has reached till now.
2.step_id--the step which contains this action
3.process_id -- the workflow process which contains the step.

Experience and background:

I am an engineering graduate from Institute Of Technology, BHU, Varanasi which has been recently converted to an IIT. I participated  in 2009 for Dspace in Google Summer Of  Code . My project was "Submission Enhancement".I feel the project was very much successful and I completed the DB management of input-forms. The wiki page of the project is at http://wiki.dspace.org/index.php/Google_Summer_of_Code_2009_Submission_Enhancements.

...