Skip to content

atd/station

Repository files navigation

Station

Station is a Rails Engine focused on Content Management and Distributed Social Software.

Rails   = Ruby  + Web Development
Station = Rails + Content Management

Station provides your Rails application with a CMS framework. This means authentication, authorization, roles, permissions, tags, etc… but from a very flexible scope.

Web page

Features

  • Agents

  • Resources

    • Atom feeds, RFC 4287

    • AtomPub protocol, RFC 5023

    • Contents and Containers relations

  • Folksonomies: Tags, Taggable models

  • Logos for models

  • Sortable lists for models

  • Integration with exception_notification plugin

Architecture

You can add any of the following functionality to any of your ActiveRecord models:

Basic

ActiveRecord::Agent

a model with authentication, authorization and potencial to perform actions over Resources, e.g. a User

ActiveRecord::Resource

a model that have, at least, CRUD operations and can be imported/exported in different formats, like Atom/RSS.

ActiveRecord::Content

a Resource that belongs to a Container, e.g. a Post

ActiveRecord::Container

a model that have many Contents, e.g. a Project

ActiveRecord::Stage

a model that defines an RBAC Authorization framework for Agents, e.g. a Group

Complements

ActiveRecord::Taggable

a model that can be tagged

ActiveRecord::Logoable

a model with Logo

ActiveRecord::Sortable

a model with a sortable list

Generators

Agents

An Agent has the capability to post Contents to Containers. An User is the example of Agent

script/generate station_agent Model

Resources

script/generate station_scaffold Model attributes

Example

Blog

Create personal blogs with a pair of commands:

script/generate station_agent User
script/generate station_scaffold Article content:text

rake db:migrate

Users now can entry their own Articles

You can add AtomPub support for Articles creation. You must implement params_from_atom method in Article model:

def self.params_from_atom(entry)
  { :body => entry.content.xml.to_s }
end

Requirements

  • Rails 2.3.4

  • RubyGems:

    • mislav-will_paginate

    • ruby-openid (optional)

    • atom-tools (optional)

    • nokogiri, prism (optional)

  • Rails Plugins:

    • attachment_fu

    • exception_notification (optional)

Installation

Plugins

You need attachment_fu for Logos and Attachments support:

script/plugin install git://github.com/technoweenie/attachment_fu.git

To install Station, run:

script/plugin install -r stable git://github.com/atd/station.git

Install exception_notification plugin if you want to receive debugging emails from your application

script/plugin install git://github.com/rails/exception_notification.git

Gems

Run rake gems:install to install the required gem, mislav-will_paginate

You can install this aditional gems:

  • ruby-openid, for OpenID authentication support

  • atom-tools, for AtomPub support

  • nokogiri, prism, for HTML management, Microformats discovery

TODO

  • Agents authentication support: OAuth

  • Microformats

  • RDF: FOAF + SIOC

Copyright © 2008-2010 Antonio Tapiador, released under the LGPL license

About

Rails Content Management System engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages