The development of the SWORD (Simple Web-service Offering Repository Deposit) protocol has enabled repositories to start accepting deposits from remote systems and interfaces. If you’re unsure of the basics of SWORD, read one of the following:
However, to date there has not been a great deal of use of SWORD. One of the reasons is a lack of SWORD clients that can deposit items into repositories. Demonstration clients were created by the SWORD project, and a PHP SWORD library was created by the SWORD2 project, but no client that can easily be set up by web developers or repository administrators to be used by depositors has been created.
A bit of background:
Last year as part of my job at the University of Auckland Library, I had to create a SWORD deposit client to allow PhD candidates to submit an electronic copy of their thesis. We wanted to use SWORD to do this as it means the PhD students do not have to create a repository account, and learn how to submit in the repository. The SWORD client was written in PHP and made use of the SWORD PHP library. The client was made up of a very small number of pages: login, enter title of thesis, upload file, select embargo and licencing options, verify, submit.
I then had to create a second similar deposit interface to allow a department to archive a technical report series. This deposit interface was similar, but didn’t have the embargo option, asked for more metadata, and returned the URL of the deposited item in a format that could be inserted into their own web publishing system.
Developing and maintaining two similar but not identical systems seemed to be wasteful, therefore I decided to create a generic SWORD deposit interface toolkit that allowed new deposit systems to be easily created. EasyDeposit was born!
What is EasyDeposit?
EasyDeposit is a toolkit for easily creating SWORD deposit web interfaces using PHP. To start using EasyDeposit, follow the installation instructions.
How does EasyDeposit work?
EasyDeposit allows you to create customised SWORD deposit interfaces by configuring a set of ‘steps’. A typical flow of steps may be: login, select a repository, enter some metadata, upload a file, verify the information is correct, perform the deposit, send a confirmation email. Alternatively a deposit flow may just require a file to be uploaded and a title entered. A configuration file is used to list the steps you require.
EasyDeposit makes use of the CodeIgniter MVC PHP framework. This means each ‘step’ is made up of two files: a ‘controller’ which looks after the validation and processing of any data entered, and a ‘view’ which controls the web page that a user sees. This separation of concerns makes it easy for web programmers to edit the controllers, and web designers to tinker with the look and feel of the interface in the views.
What ‘steps’ come with EasyDeposit?
EasyDeposit comes with 14 different steps, including:
- ldaplogin: Allows login to take place against an LDAP directory
- nologin: Allows preset login inforamtino to be provided if you don’t wish users to have to login, then forwards the user on to the next step
- depositcredentials: Sets credentials to be used for the deposit if you wish to use a generic set of credentials, then forwards the user on to the next step
- selectrepository: Allows a user to select between multiple repositories
- servidedocument: Displays a service document to the user to allow them to decide which collection to deposit into
- title: Requires the user to enter a title for the item they are depositing
- metadata: Requires the user to enter metadata for the item they are depositing
- uploadfile: Allows the user to upload files to deposit
- verify: Allow the user to verify their submission before the deposit
- deposit: Performs the deposit, then forwards the user on to the next step
- email: Sends an email confirmation of the deposit, then forwards the user on to the next step
- thankyou: Displays a confirmation of the deposit to the user
Extra steps can be easily added just by adding a controller and a view for each new step.
Is EasyDeposit open source?
Yes! It is published with a modified BSD licence.
How do I use EasyDeposit?
Follow the installation instructions! If you have any questions, please leave comments on this blog entry, to get in touch with me directly.