This is the initial implementation of Fauxton, focused on fleshing out the various pieces of functionality and as a test bed for new ideas. Full functionality and design considerations will be added later.
Current items of interest:
A recent of node.js and npm is required.
1. Clone the Couchdb repo: https://github.com/apache/couchdb.git or http://git-wip-us.apache.org/repos/asf/couchdb.git cd couchdb
cd src/fauxton # Install all dependencies npm install
Using the dev server is the easiest way to use fauxton, specially when developing for it. grunt dev
# Add node_modules/.bin to your path # export PATH=./node_modules/.bin:$PATH # Or just use the wrappers in ./bin/ # Development mode, non minified files ./bin/grunt couchdebug # Or fully compiled install # ./bin/grunt couchdb
Follow the "Fauxton Setup" section, Edit settings.json variable root where the document will live. eg. "/_utils/fauxton/" then: ./bin/grunt couchdb This will install the latest version of Fauxton into `/share/www/fauxton`
There are two ways to run the tests. `grunt test` will run the tests via the commandline. It is also possible to view them via the url `http://localhost:8000/testrunner` when the dev server is running. Refreshing the url will rerun the tests via phantomjs and in the browser.
./bin/grunt couchapp_deploy - to deploy to your local [Couchdb instance] (http://localhost:5984/fauxton/_design/fauxton/index.html)
Each bit of functionality is its own seperate module or addon. All core modules are stored under
app/module and any addons that are optional are under
app/addons. We use backbone.js and Backbone.layoutmanager quite heavily, so best to get an idea how they work. Its best at this point to read through a couple of the modules and addons to get an idea of how they work. Two good starting points are
app/modules/databases. Each module must have a
base.js file, this is read and compile when Fauxton is deployed. A
resource.js file is usually for your Backbone.Models and Backbone.Collections,
view.js for your Backbone.Views. The
routes.js is used to register a url path for your view along with what layout, data, breadcrumbs and api point is required for the view.
Checkout Jira for a list of items to do.