diff --git a/app/controllers/recurring_items_controller.rb b/app/controllers/recurring_items_controller.rb
new file mode 100644
index 0000000000000000000000000000000000000000..d172c00ab76b4e14b34efd4901873a136743b273
--- /dev/null
+++ b/app/controllers/recurring_items_controller.rb
@@ -0,0 +1,51 @@
+class RecurringItemsController < ApplicationController
+  def index
+    list
+    render :action => 'list'
+  end
+
+  # GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
+  verify :method => :post, :only => [ :destroy, :create, :update ],
+         :redirect_to => { :action => :list }
+
+  def list
+    @recurring_items_pages, @recurring_items = paginate :recurring_items, :per_page => 10
+  end
+
+  def show
+    @recurring_items = RecurringItems.find(params[:id])
+  end
+
+  def new
+    @recurring_items = RecurringItems.new
+  end
+
+  def create
+    @recurring_items = RecurringItems.new(params[:recurring_items])
+    if @recurring_items.save
+      flash[:notice] = 'RecurringItems was successfully created.'
+      redirect_to :action => 'list'
+    else
+      render :action => 'new'
+    end
+  end
+
+  def edit
+    @recurring_items = RecurringItems.find(params[:id])
+  end
+
+  def update
+    @recurring_items = RecurringItems.find(params[:id])
+    if @recurring_items.update_attributes(params[:recurring_items])
+      flash[:notice] = 'RecurringItems was successfully updated.'
+      redirect_to :action => 'show', :id => @recurring_items
+    else
+      render :action => 'edit'
+    end
+  end
+
+  def destroy
+    RecurringItems.find(params[:id]).destroy
+    redirect_to :action => 'list'
+  end
+end
diff --git a/app/helpers/recurring_items_helper.rb b/app/helpers/recurring_items_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..6ac638ea9f4fa5a984c59f7590a1b73aa05e3042
--- /dev/null
+++ b/app/helpers/recurring_items_helper.rb
@@ -0,0 +1,2 @@
+module RecurringItemsHelper
+end
diff --git a/app/models/recurring_items.rb b/app/models/recurring_items.rb
new file mode 100644
index 0000000000000000000000000000000000000000..d37b33bdf40d148a2c52dace61c5e6a1ff217931
--- /dev/null
+++ b/app/models/recurring_items.rb
@@ -0,0 +1,2 @@
+class RecurringItems < ActiveRecord::Base
+end
diff --git a/app/views/layouts/recurring_items.rhtml b/app/views/layouts/recurring_items.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..fc6177ba1d3a5a560a71b4c854e7a0528a5574a8
--- /dev/null
+++ b/app/views/layouts/recurring_items.rhtml
@@ -0,0 +1,13 @@
+<html>
+<head>
+  <title>RecurringItems: <%= controller.action_name %></title>
+  <%= stylesheet_link_tag 'scaffold' %>
+</head>
+<body>
+
+<p style="color: green"><%= flash[:notice] %></p>
+
+<%= @content_for_layout %>
+
+</body>
+</html>
diff --git a/app/views/recurring_items/_form.rhtml b/app/views/recurring_items/_form.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..a74c30f01821f381ac2a80f7422ddbfaa11cc6d7
--- /dev/null
+++ b/app/views/recurring_items/_form.rhtml
@@ -0,0 +1,22 @@
+<%= error_messages_for 'recurring_items' %>
+
+<!--[form:recurring_items]-->
+<p><label for="recurring_items_description">Description</label><br/>
+<%= text_field 'recurring_items', 'description'  %></p>
+
+<p><label for="recurring_items_amount">Amount</label><br/>
+<%= text_field 'recurring_items', 'amount'  %></p>
+
+<p><label for="recurring_items_startdate">Startdate</label><br/>
+<%= date_select 'recurring_items', 'startdate'  %></p>
+
+<p><label for="recurring_items_enddate">Enddate</label><br/>
+<%= date_select 'recurring_items', 'enddate'  %></p>
+
+<p><label for="recurring_items_created_on">Created on</label><br/>
+<%= datetime_select 'recurring_items', 'created_on'  %></p>
+
+<p><label for="recurring_items_updated_on">Updated on</label><br/>
+<%= datetime_select 'recurring_items', 'updated_on'  %></p>
+<!--[eoform:recurring_items]-->
+
diff --git a/app/views/recurring_items/edit.rhtml b/app/views/recurring_items/edit.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..4ec015c6abb48c5f181133cce8b75edd48abc30a
--- /dev/null
+++ b/app/views/recurring_items/edit.rhtml
@@ -0,0 +1,9 @@
+<h1>Editing recurring_items</h1>
+
+<%= start_form_tag :action => 'update', :id => @recurring_items %>
+  <%= render :partial => 'form' %>
+  <%= submit_tag 'Edit' %>
+<%= end_form_tag %>
+
+<%= link_to 'Show', :action => 'show', :id => @recurring_items %> |
+<%= link_to 'Back', :action => 'list' %>
diff --git a/app/views/recurring_items/list.rhtml b/app/views/recurring_items/list.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..e63673dce2330327edc8a3f992d05b84b6f4560a
--- /dev/null
+++ b/app/views/recurring_items/list.rhtml
@@ -0,0 +1,27 @@
+<h1>Listing recurring_items</h1>
+
+<table>
+  <tr>
+  <% for column in RecurringItems.content_columns %>
+    <th><%= column.human_name %></th>
+  <% end %>
+  </tr>
+  
+<% for recurring_items in @recurring_items %>
+  <tr>
+  <% for column in RecurringItems.content_columns %>
+    <td><%=h recurring_items.send(column.name) %></td>
+  <% end %>
+    <td><%= link_to 'Show', :action => 'show', :id => recurring_items %></td>
+    <td><%= link_to 'Edit', :action => 'edit', :id => recurring_items %></td>
+    <td><%= link_to 'Destroy', { :action => 'destroy', :id => recurring_items }, :confirm => 'Are you sure?', :post => true %></td>
+  </tr>
+<% end %>
+</table>
+
+<%= link_to 'Previous page', { :page => @recurring_items_pages.current.previous } if @recurring_items_pages.current.previous %>
+<%= link_to 'Next page', { :page => @recurring_items_pages.current.next } if @recurring_items_pages.current.next %> 
+
+<br />
+
+<%= link_to 'New recurring_items', :action => 'new' %>
diff --git a/app/views/recurring_items/new.rhtml b/app/views/recurring_items/new.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..c6b1bbba6e34fe75d51eee402fd9457084de47e3
--- /dev/null
+++ b/app/views/recurring_items/new.rhtml
@@ -0,0 +1,8 @@
+<h1>New recurring_items</h1>
+
+<%= start_form_tag :action => 'create' %>
+  <%= render :partial => 'form' %>
+  <%= submit_tag "Create" %>
+<%= end_form_tag %>
+
+<%= link_to 'Back', :action => 'list' %>
diff --git a/app/views/recurring_items/show.rhtml b/app/views/recurring_items/show.rhtml
new file mode 100644
index 0000000000000000000000000000000000000000..8ce83ad2f8a93580da1d26997971ef00d8672658
--- /dev/null
+++ b/app/views/recurring_items/show.rhtml
@@ -0,0 +1,8 @@
+<% for column in RecurringItems.content_columns %>
+<p>
+  <b><%= column.human_name %>:</b> <%=h @recurring_items.send(column.name) %>
+</p>
+<% end %>
+
+<%= link_to 'Edit', :action => 'edit', :id => @recurring_items %> |
+<%= link_to 'Back', :action => 'list' %>
diff --git a/test/functional/recurring_items_controller_test.rb b/test/functional/recurring_items_controller_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..145fe18cfe87503f6b12798e27e40ac584cb2dc4
--- /dev/null
+++ b/test/functional/recurring_items_controller_test.rb
@@ -0,0 +1,88 @@
+require File.dirname(__FILE__) + '/../test_helper'
+require 'recurring_items_controller'
+
+# Re-raise errors caught by the controller.
+class RecurringItemsController; def rescue_action(e) raise e end; end
+
+class RecurringItemsControllerTest < Test::Unit::TestCase
+  fixtures :recurring_items
+
+  def setup
+    @controller = RecurringItemsController.new
+    @request    = ActionController::TestRequest.new
+    @response   = ActionController::TestResponse.new
+  end
+
+  def test_index
+    get :index
+    assert_response :success
+    assert_template 'list'
+  end
+
+  def test_list
+    get :list
+
+    assert_response :success
+    assert_template 'list'
+
+    assert_not_nil assigns(:recurring_items)
+  end
+
+  def test_show
+    get :show, :id => 1
+
+    assert_response :success
+    assert_template 'show'
+
+    assert_not_nil assigns(:recurring_items)
+    assert assigns(:recurring_items).valid?
+  end
+
+  def test_new
+    get :new
+
+    assert_response :success
+    assert_template 'new'
+
+    assert_not_nil assigns(:recurring_items)
+  end
+
+  def test_create
+    num_recurring_items = RecurringItems.count
+
+    post :create, :recurring_items => {}
+
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_equal num_recurring_items + 1, RecurringItems.count
+  end
+
+  def test_edit
+    get :edit, :id => 1
+
+    assert_response :success
+    assert_template 'edit'
+
+    assert_not_nil assigns(:recurring_items)
+    assert assigns(:recurring_items).valid?
+  end
+
+  def test_update
+    post :update, :id => 1
+    assert_response :redirect
+    assert_redirected_to :action => 'show', :id => 1
+  end
+
+  def test_destroy
+    assert_not_nil RecurringItems.find(1)
+
+    post :destroy, :id => 1
+    assert_response :redirect
+    assert_redirected_to :action => 'list'
+
+    assert_raise(ActiveRecord::RecordNotFound) {
+      RecurringItems.find(1)
+    }
+  end
+end
diff --git a/test/unit/recurring_items_test.rb b/test/unit/recurring_items_test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..0c26d7e4bc4ed7713bbf1228cd6044ed38d5c5f4
--- /dev/null
+++ b/test/unit/recurring_items_test.rb
@@ -0,0 +1,10 @@
+require File.dirname(__FILE__) + '/../test_helper'
+
+class RecurringItemsTest < Test::Unit::TestCase
+  fixtures :recurring_items
+
+  # Replace this with your real tests.
+  def test_truth
+    assert true
+  end
+end