rails backend for the ioaute_frontend
Objective-J JavaScript Ruby HTML Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


== Welcome to Ioaute

Ioaute is an open social publishing platform and this is its backend.

The frontend can be found at https://github.com/gorenje/ioaute_frontend

An example can be found at http://pubme.2monki.es/

== Motivation

To provide an open social publishing platform for everyone. Ioaute aims to provide 
a mix of Wiki, GitHub and community: editing content on online like Wiki, clone
and improve content like GitHub and community by using content from everywhere on 
the web.

Unlike a Wiki, only the author is allowed to edit existing content but anyone can
copy and extend that content, a-la GitHub. And since the world is a community, features
for adding content from anyone are built right in.

== Technical

Rails is used to build the backend and this is basically a stock-standard Rails 3 
application with a bunch of plugins. It's provides a simple user interface for logging
in and managing publications, an API for the frontend to interact with and simple
partials to render the publications as HTML.

These three roles are splitted into 2 plugins (for API and rendering) and the main
application for providing the user interface.

The database schema is fairly simple: a publication has_many pages has_many page_elements

A page element is polymorphic so that different specific page elements can be represented 
and easily added. In fact, to add a new page element (e.g. to represent a vimeo video
element) is a matter of:
  - adding a new model 
  (here: https://github.com/gorenje/ioaute_backend/tree/master/vendor/plugins/page_elements/app/models), 
  - a new view 
  (here: https://github.com/gorenje/ioaute_backend/tree/master/vendor/plugins/page_elements/app/views/page_elements) 
  - and extending https://github.com/gorenje/ioaute_backend/blob/master/app/models/page_element.rb to map the new page element from the frontend to a ruby class.

Views are coded in HAML and css is done in SASS.

== Trying out

This backend contains everything, including the frontend. So what you see running at
http://pubme.2monki.es/ is contained here. The frontend is compilted down to Javascript
and included in this repository. So to try it out:

  git clone  https://github.com/gorenje/ioaute_backend
  cd ioaute_backend
  ## setup database.yml (and probably other stuff -- see config/deploy.rb for details)
  rake db:migrate
  rails s

This is oversimplified but the point is that the frontend isn't required to try it out.

Frontend repository used to be deployed onto the server and compiled there but because
of various issues with cappuccino versions and frameworks and libraries and etc etc, the
author has setup everything locally to build the frontend locally and then syncs that
over to the backend (rake editor:install) and deploys the .js files onto the server.