-
Notifications
You must be signed in to change notification settings - Fork 7
Home
This is the Tahi Project Wiki.
Anything that is mostly relevant to engineers, and only engineers, should go here.
Basic setup and usage information should go in the README.
Tahi is a platform for submitting and revising academic manuscripts. It is owned by the Public Library of Science (PLOS) and developed by a variety of consultants, including Neo (located in NYC and SF), MutuallyHuman (located in Columbus, staffed primarily by former Neons), and a few others.
Tahi's users are not only non-technical employees at PLOS and its constituent journals, but also their developers, who will have access to the open-source Tahi codebase, making them able to tweak and write their own journal-specific extensions.
See the for instructions on how to get up and running.
The core Tahi application is built with Rails 4.2 and EmberJS 1.12.
The Rails asset pipeline has been eschewed in favor of ember-cli
's include_ember_script_tags()
.
Ember-specific code lives in the client
subdirectory.
PostgreSQL is the ActiveRecord store of choice in all environments.
Slanger and web sockets are used to perform live updates for conversations and workflow updates.
Sidekiq is used for background jobs such as generating epub
and pdf
files, and sending e-mails.
Redis is a dependency of both Slanger and Sidekiq, and must be running for the app server to function.
Most Tahi interface functionality is implemented in the form of Rails plugins. Right now, most standard functionality is stored in the same repository in the engines
subdirectory, but it will be transitioned to external repos and still installed via Gemfile.
One of Tahi's core features is the ability to upload doc
files (the lingua franca of academic publishing) and automatically translate them to HTML editable within Tahi itself. Since manuscripts can contain everything from images to complex mathematical formulae, this is a more complex operation than you might expect. It is handled by a separate tool called iHat.
Standard rspec-rails
is used for testing Rails components.
Capybara is used for browser tests, which live in the spec/features
folder.
QUnit is used for Ember tests, which live in the client/tests
folder.
Capybara tests are older, and will be mostly eventually phased out in favor of QUnit integration tests.