https://github.com/atd/station
Rails Content Management System engine
https://github.com/atd/station
Last synced: 10 months ago
JSON representation
Rails Content Management System engine
- Host: GitHub
- URL: https://github.com/atd/station
- Owner: atd
- License: lgpl-3.0
- Created: 2009-05-06T09:39:01.000Z (about 17 years ago)
- Default Branch: master
- Last Pushed: 2011-01-28T07:47:08.000Z (over 15 years ago)
- Last Synced: 2024-05-13T03:01:06.087Z (about 2 years ago)
- Language: Ruby
- Homepage: http://rstation.wordpress.com/
- Size: 2.44 MB
- Stars: 74
- Watchers: 4
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.rdoc
Awesome Lists containing this project
README
= 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}[http://rstation.wordpress.com/]
== Features
* Agents
* Authentication: Login/Password, {OpenID}[http://openid.net/], {Central Authentication Service (CAS)}[http://www.ja-sig.org/products/cas/], CookieToken
* Authorization: Access Control, Roles and Permissions (RBAC)
* Activation: Email validation, Password reset
* Resources
* Atom feeds, {RFC 4287}[http://tools.ietf.org/html/rfc4287]
* AtomPub protocol, {RFC 5023}[http://tools.ietf.org/html/rfc5023]
* 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}[http://en.wikipedia.org/wiki/Create,_read,_update_and_delete] 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 (c) 2008-2010 Antonio Tapiador, released under the LGPL license