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.
- Ruby is required. It comes standard on Mac and Linux. If you're on Windows, check out RubyInstaller.
- Clone this repository.
gem install bundlerto install the Bundler gem (if you don't already have it) and then, from the root of the new directory,
shotgunto launch the app!
- Go to the browser and navigate to localhost:9393
- 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,
publicdirectory and run these two commands:
bower install. (AngularJS arrives with this bower command.)
cd ..to get back to the root of the application directory and run
npm installhere. (ExpressJS arrives with this npm command.)
- Open a browser and visit localhost:8080. Your MEAN-stack app will be running there!
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.