Launchpad


The Summary

Launchpad is an open-source article-based CMS and blogging platform for Rails. It has all the features you come to expect from a CMS, like admin-only edit links, commenting, voting, RSS feeds, future-publishing posts, and user registration. Best of all, it’s written 100% in Rails!

The Problem

You want to create a flexible CMS system. You want users to be able to register and add content, and people to view that content; you want all the usual (comments, voting on articles, RSS feeds, etc.)

The Solution

Rails makes it fairly easy to write your own CMS. You can probably use scaffolding for most of the administrative pages (and pretty them up later, if you want multiple users to register and contribute). The business logic of the application is pretty simple.

The Articles

  • Coming Soon!

The Architecture

At the core, you have one model: an article (which doubles as a page, too, for static-page content, like an About page). You also might have votes and comments as models. You can use scaffolding for most of the code; this will make the forms free for new, edit, etc. (which is most of the work); you can pretty those up. The main page will be the view-articles page (and maybe a front page; that will require a bit of work). You can handle RSS feeds through the XML builder.

The Features

Launchpad includes the following features:

  • Voting and Commenting: users can vote and comment on articles (maximum one vote per user per article).
  • RSS Feeds: there’s an article RSS feed, but also, each posts’ comments has an RSS feed.
  • Dashboard: the dashboard provides a quick summary of what’s going on–new and upcoming posts, as well as articles and votes.
  • Registration: Other users and contributers can register (but as admins only; see shortcomings)
  • Post URL: like Wordpress, you can edit the “post slug” or post URL of posts!
  • Future-Posting: like Wordpress, set the publication date of an article in the future, and it’ll appear on that date.

The Short-Comings

Launchpad isn’t intended to be a perfect, polished, public project; so it has a few drawbacks:

  • Hard-coded Admin: the administrative user is hard-coded as the user with an ID of 1.
  • No Roles: there are no roles (contributer, editor, administrator); if you’re registered, you’re considered an admin.
  • Few Tests: this was one of our first projects! It has a fair bit of testing, but by and far, much of the application (especially the view HTML) is not tested.
  • Non-Pluggable, Non-Skinnable: You can’t write plugins, and you can’t create skins; you can only edit the layouts.
  • No Spam Filtering: you can hardly launch without this!

The Code

You can get the latest code from the RubyForge page.

  Posted in Projects

Rate this article:
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Further Reading

Leave a Reply