Wheels Within Wheels | A CRUD app that makes CRUD apps
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Wheels Within Wheels

It's not unusual to require a web application with CRUD functionality. Code, code, code. What if I told you there's an app—a CRUD app, in fact—that builds a CRUD app for you?

Wheels Within Wheels is the robot you've been waiting for. Built in Sinatra, Wheels Within Wheels accepts some basic specifications from the user, creates a MEAN-stack CRUD app with those specs, wraps it up in a Zip file and presents a link for download.

You may never need to build another CRUD app!

Rubyists (or anyone) can use this as a tool to learn about the MEAN-stack. You can inspect the code with the application's design—your design—in mind.

Visit on the Web


Run it locally

Want to run it locally? No problem.

  1. Ruby is required. It comes standard on Mac and Linux. If you're on Windows, check out RubyInstaller.
  2. Clone this repository.
  3. gem install bundler to install the Bundler gem (if you don't already have it) and then, from the root of the new directory, bundle install.
  4. Run shotgun to launch the app!
  5. Go to the browser and navigate to localhost:9393
  6. And you're up and running!

Web app operation, or the 'outer wheel'

Wheels Within Wheels creates a basic, single-model CRUD application with three attributes. To do so, it asks the user for the following specifications:

  • Application title
  • Application description
  • Model name (e.g., book)
  • Three pairs of attributes and data types (e.g., title, String; author, String; finished, Boolean). At this time, the valid data types are String, Number, Date, and Boolean. Click 'submit' and you'll be presented with a link to download the completed basic MEAN-stack application made to your specifications.

Custom app operation, or the 'inner wheel'

Download and unzip your new app. To run it locally, you need to get MEAN (MongoDB, ExpressJS, AngularJS, Node.js).

  • Download and install node.js. This will also install the command line utility npm.
  • Download, install, and configure MongoDB.
  • Install Bower on the command line: npm install -g bower
  • In your new application directory, cd into the public directory and run these two commands: npm install bower install. (AngularJS arrives with this bower command.)
  • Next, cd .. to get back to the root of the application directory and run npm install here. (ExpressJS arrives with this npm command.)
  • Run node server.js.
  • Open a browser and visit localhost:8080. Your MEAN-stack app will be running there!

Known issues

The application does not handle a model with less than three attributes. I've added a check that prohibits creation of an app with zero attributes; a flash message is displayed to the user. Still need to figure out the substitution mechanism for one- or two-attribute apps.


This application is not currently under active development. I can accept pull requests for bug fixes. If you envision improvements, feel free to fork and develop.