A Simple Monograph Workflow

Andy Byers
2 min readOct 29, 2015

Rua is Ubiquity Press’ Book Management System, having recently completed an internal Alpha we’re currently working on a Beta release, which will be tested in our Live environment. Initially Rua will be used only by our internal Production team for preparing a book for publication, but eventually it will be used for the entire workflow from Submission to Publication.

Technology

Choice of tech is important, so we set some requirements:

  1. A robust, well tested set of built in features
  2. Rapid development
  3. An ecosystem developers are familiar with
  4. Simple deployment

PHP is out of the window instantly. Its popular, sure, but its a nightmare.

We’re building a platform for use, primarily, within the Academic community, where the likes of R are popular, but the best suited (in the team’s opinion anyway) is probably Python. Python is a mature language, with a great community and good web frameworks like Django.

Rua is built using Django and Python, alongside some other Open Source projects including:

  • Django Bootstrap (for easy bootstrap templates)
  • Django Rest Framework (for the Rest API)
  • Django Summernote & JQTE (for Rich Text Editing)

All of which can be easily installed using PIP or EASY_INSTALL.

Hacking

As in, mucking around with… Django projects are really easy to setup and start playing with. They’re also not as complex to set up in production as you might think. Rua is currently lacking an install script, but you can set it up locally quite easily.

NB. Unless you’re super hardcore, you’ll need a unix-like (Linux/Mac etc) machine. Python/Windows can be a pain. We recommend you use VirtualEnvironment with VirtualEnvWrapper. Once these are installed, clone the repo with:

$ git clone https://github.com/ubiquitypress/rua.gitMake a virtual environment:$ mkvirtualenv ruaInstall the requirements:$ pip install -r requirements.txt

Pip will install all of the requirements into your VirtualEnvironment, this means it wont mess with anything else you’ve got installed on your machine. By default, Rua uses SQLite, for simplicities sake, but you can easily change the settings to use MySQL, Postgres or any of the other DBMS supported by Django. You may need to install an additional component to use a different DBMS.

Next, we’re going to sync and migrate the db, this will create the DB tables.

$ python manage.py syncdb
$ python manage.py migrate

Next we can load in some pre-configured fixtures of data

$ python manage.py loaddata core/fixtures/settinggroup.json
$ python manage.py loaddata core/fixtures/settings.json
$ python manage.py loaddata core/fixtures/cc-licenses.json
$ python manage.py loaddata core/fixtures/role.json
$ python manage.py loaddata core/fixtures/langs.json

Now we can run the server

$ python manage.py runserver

You can now access the site from your browser: http://localhost:8000

The Workflow

Workflow stages include:

  • optional proposal
  • submission
  • internal review
  • peer review
  • optional copy editing
  • optional indexing
  • optional typesetting
  • production
  • publication

We’re now working towards a public release that will allow others to use the system end to end.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Andy Byers
Andy Byers

Written by Andy Byers

Pub Tech developer for Birkbeck CTP

No responses yet

Write a response