CAUTION: Sapling is in the very early stages of development. Things are likely to change in ways that are not backwards compatible
Client Features:
- User Account management
- User login
- User signup
- Coffeescript / Less / Sass / SCSS / Stylus automatically compiled on save
- auto-reload during development saves you from manually refreshing the page
- Javascript / CSS minification for production
- testacular integration for unit tests
- Bootstrap integration with themes.
Sapling is intended to be used with a backend, but comes with a basic NodeJS / Express server to get your started.
Please visit the backend
section for a complete list of backends.
git clone https://github.com/scotch/sapling.git
to clone the sapling repositorycd sapling
./scripts/init.sh
to install node packages./scripts/development.sh
to compile javascript and css
*npm start
Then navigate your browser to http://localhost:3000
This will run the Brunch in the background
./scripts/test.sh
to run unit test with testacular- Open the browser you would like to test to http://localhost:3334
Notes:
- If you would like to write your test in coffeescript run
./scripts/compile-tests.sh
in a separate window. - Testacular will run tests on save. To insure that changes are saved be sure to have ``./script/development.sh` running in the console.
- To changed the target browsers modify your
/test/conf.js
file E.g.browser = ["ChromeCanary", "Firefox"]
WIP
./scripts/production.sh
to minify javascript and css files for production use.
EMFILE
error
- EMFILE means there're too many open files. Brunch watches all your project files and it's usually a pretty big number. You can fix this error with setting max opened file count to bigger number with command ulimit -n (ulimit -n 10000 should be enough).
When we upgrade sapling's repo, you can just fetch the changes and merge them into your project with git.
git pull origin master
_public/ --> Contains generated file for severing the app
These files should not be edited directly
app/ --> all of the files to be used in production
scripts/ --> base directory for app scripts
controllers.js --> application controllers
directives.js --> custom angular directives
filters.js --> custom angular filters
services.js --> custom angular services
assets --> a place for static assets. These files will be copied to
the public directory un-modified.
font/ --> [fontawesome](http://fortawesome.github.com/Font-Awesome/) rendering icons
fontawesome-webfont.*
img/ --> image files
partials/ --> angular view partials (partial html templates)
nav.html
partial1.html
partial2.html
index.html --> app layout file (the main html template file of the app)
styles/ --> all custom styles. Acceptable files types inculde:
less, sass, scss and stylus
themes/ --> a place for custom themes
custom/ --> starter theme **NOTE the underscore (_). Files beginning with an
underscore will not automatically be compiled, they must be imported.
_override.less --> styles that should beloaded after bootstrap.
_variables.less --> bootstrap variables to be used during the compilation process
app.less --> a file for importing styles.
app.coffee --> application definition and routes.
init.coffee --> application bootstrap
node_modules --> NodeJS modules
scripts/ --> handy shell scripts
compile-tests.sh --> compiles coffeescript test to javascript
development.sh --> compiles files and watches for changes
init.sh --> installs node modules
production.sh --> compiles and compresses files for production use
server.sh --> runs a development server at `http://localhost:3333`
test.sh --> runs all unit tests
server/ --> this directory contains the Express server. If you are using your own backend you
may safely delete this directory.
**DETAILS** Coming Soon!
test/ --> test source files and libraries
e2e/ -->
scenarios.js --> end-to-end specs **NOT WORKING YET**
unit/
controllers.spec.js --> specs for controllers
directives.spec.js --> specs for directives
filters.spec.js --> specs for filters
services.spec.js --> specs for services
vendor/
angular/ --> angular testing libraries
angular-mocks.js --> mocks that replace certain angular services in tests
vendor/
scripts/ --> angular and 3rd party javascript libraries
angular/ files are compiled to `vendor.js`
angular.js --> the latest angular js
angular-*.js --> angular add-on modules
version.txt --> version number
bootstrap/ --> for responsive layout
bootstrap-collapse.js
console-helper.js --> makes it safe to do `console.log()` always
jquery-1.7.2.js --> for use with bootstrap-collapse
styles/ --> sapling / sapling themes and 3 party CSS
bootstrap/ --> boostrap files - **NOTE** the underscore prevents the
_*.less files from automatically being added to application.css
sapling --> extends boostrap
_*.less
themes --> themes to extend Bootstrap
default --> the default bootstrap theme
_overrides.less
_variables.less
sapling --> supplemental theme
_overrides.less
_variables.less
smokey --> supplemental theme
_overrides.less
_variables.less
For more information on sapling please check out http://sapling.scotchmedia.com/