BibliographyPlugin » History » Version 17

Luis Figueira, 2013-10-08 05:37 PM

1 1 Luis Figueira
h1. Bibliography Plugin Documentation
2 1 Luis Figueira
3 6 Luis Figueira
We're developing a Plugin to manage project's and user's bibliographical entries. In the issue tracker it is named _feature_36_.
4 1 Luis Figueira
5 4 Chris Cannam
* [[BibliographyOngoingReviewNotes|Ongoing miscellaneous review notes]] from testing during development
6 1 Luis Figueira
* [[BibliographyPluginAlphaVersion|Plugin's Alpha Version Requisites and Notes]]
7 6 Luis Figueira
8 6 Luis Figueira
9 6 Luis Figueira
h2. Objective and Philosophy
10 6 Luis Figueira
11 6 Luis Figueira
Projects hosted on code.soundsoftware.ac.uk are usually associated with academic publications (papers, articles, etc). These often offer a strong theoretical background to the code that's being hosted on this site, and many times are the only way users can understand what's happening under the hood for a specific project. On the other hand many researchers are now adopting a "reproducible research" philosophy, in which they not only publish the paper/article itself, but also the code and/or data that supports such publication.
12 6 Luis Figueira
13 7 Luis Figueira
The main idea behind this module is to be able to provide a service that ties both features together, making it easy for researchers to make their source code and publications available on the same platform.
14 1 Luis Figueira
15 7 Luis Figueira
Since Redmine is a project-oriented platform, it makes sense that the publications can only be *created, edited, deleted, etc* in the project's scope. 
16 7 Luis Figueira
17 1 Luis Figueira
h2. Plugin Architecture
18 7 Luis Figueira
19 7 Luis Figueira
h3. Permissions
20 8 Luis Figueira
21 7 Luis Figueira
The following permissions were created: 
22 7 Luis Figueira
23 7 Luis Figueira
* view
24 7 Luis Figueira
* add
25 7 Luis Figueira
* edit
26 7 Luis Figueira
* delete  
27 7 Luis Figueira
28 1 Luis Figueira
29 1 Luis Figueira
h3. Models
30 1 Luis Figueira
31 1 Luis Figueira
h4. Publications
32 1 Luis Figueira
33 1 Luis Figueira
h4. Bibtex_Entries
34 1 Luis Figueira
35 1 Luis Figueira
h4. Authors
36 1 Luis Figueira
37 1 Luis Figueira
h4. Authorships
38 1 Luis Figueira
39 1 Luis Figueira
Model that "ties" the authors and publications models together. It contains relation-specific information: 
40 1 Luis Figueira
41 1 Luis Figueira
* @name_on_paper@: author's name on that specific publication;
42 1 Luis Figueira
* @order@: author's order in that publication;
43 1 Luis Figueira
* @institution@: author's institution when the publication was published;
44 1 Luis Figueira
* @email@: author's email on that specific publication.
45 1 Luis Figueira
46 1 Luis Figueira
47 1 Luis Figueira
h3. Relationships
48 1 Luis Figueira
49 1 Luis Figueira
NOTE: upload the class UML. 
50 1 Luis Figueira
51 1 Luis Figueira
52 1 Luis Figueira
h3. Tying it all togheter
53 1 Luis Figueira
54 2 Luis Figueira
This is the complete documentation used to create the plugin:
55 2 Luis Figueira
http://www.redmine.org/projects/redmine/wiki/Hooks
56 1 Luis Figueira
57 2 Luis Figueira
h3. Views
58 1 Luis Figueira
59 2 Luis Figueira
There should be two main ways to browse publications:
60 2 Luis Figueira
61 2 Luis Figueira
# General
62 2 Luis Figueira
# Project 
63 2 Luis Figueira
64 2 Luis Figueira
h4. General Publications View
65 2 Luis Figueira
66 3 Luis Figueira
All the publications published in the website.
67 3 Luis Figueira
68 2 Luis Figueira
h4. Project Publications View
69 1 Luis Figueira
70 1 Luis Figueira
All the publications related to a specific project.
71 1 Luis Figueira
72 1 Luis Figueira
h4. My Publications
73 1 Luis Figueira
74 1 Luis Figueira
In the My Page, there should be a "box" with a list of all the publications added by the user and/or publications where the user is an author
75 2 Luis Figueira
76 14 Luis Figueira
h2. Bibtex Parsing: necessary gems
77 12 Luis Figueira
78 14 Luis Figueira
* Bibtex parsing: *bibtex-ruby* (https://github.com/inukshuk/bibtex-ruby)
79 14 Luis Figueira
* Bib entries formatting: *citeproc-ruby* (https://github.com/inukshuk/citeproc-ruby)
80 1 Luis Figueira
** needs nokogiri gem: http://nokogiri.org/tutorials/installing_nokogiri.html
81 1 Luis Figueira
*** need to have @libiconv@ installed
82 14 Luis Figueira
83 14 Luis Figueira
h3. Installation instructions (tested on eclectus, as root)
84 14 Luis Figueira
85 14 Luis Figueira
<pre>
86 14 Luis Figueira
  gem install bibtex-ruby
87 14 Luis Figueira
88 14 Luis Figueira
  apt-get install libxslt-dev libxml2-dev
89 14 Luis Figueira
  apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8
90 14 Luis Figueira
  apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby
91 14 Luis Figueira
  gem install nokogiri
92 14 Luis Figueira
93 14 Luis Figueira
  gem install citeproc-ruby 
94 14 Luis Figueira
</pre>
95 14 Luis Figueira
96 15 Luis Figueira
h2. Deployment notes
97 15 Luis Figueira
98 15 Luis Figueira
h3. Migrations 
99 15 Luis Figueira
100 15 Luis Figueira
<pre>
101 16 Luis Figueira
  rake db:migrate:plugin NAME=redmine_bibliography VERSION=version
102 15 Luis Figueira
</pre>
103 9 Chris Cannam
104 9 Chris Cannam
After running the migrations, you need to seed the publication types:
105 1 Luis Figueira
106 16 Luis Figueira
<pre>
107 16 Luis Figueira
  rake redmine:plugins:redmine_bibliography:seed_bibtex_entry_types
108 16 Luis Figueira
</pre>
109 17 Luis Figueira
110 17 Luis Figueira
h2. Tests
111 17 Luis Figueira
112 17 Luis Figueira
Running test files directly using the rails runner:
113 17 Luis Figueira
<pre>
114 17 Luis Figueira
script/rails r plugins/redmine_bibliography/test/unit/publication_test.rb
115 17 Luis Figueira
</pre>