Nebula is an open source walking application skeleton for a typical Backbone web apps. You can use it to quickly bootstrap your Backbone web application projects.
As Nebula is based on Backbone.js. It is assumed user already knows JavaScript, jQuery, Backbone.js and Underscore.js. If you are looking for learning Backbone.js, visit github.com/hegdeashwin/Backbone
For understanding Nebula skeleton, knowledge of following JavaScript libraries/frameworks are must.
- Require.js - a JavaScript file and module loader. For more information visit requirejs.org
- Grunt.js - a JavaScript task runner. For more information visit gruntjs
- Bootstrap Framework 3.0 - a front-end framework for developing responsive, mobile first projects on the web. For more information visit Bootstrap
Requirejs training kit, Please visit: [https://github.com/hegdeashwin/learning-requirejs] (https://github.com/hegdeashwin/learning-requirejs)
Gruntjs training kit, Please visit: [https://github.com/hegdeashwin/learning-Grunt] (https://github.com/hegdeashwin/learning-Grunt)
Assuming that Git is already installed & running:
git clone https://github.com/Nebula-UI/Nebula.git
Assuming that Node.js is already installed & running,
Install dependencies:
npm install
Assuming that Bower is already installed & running,
Install client-side dependencies:
bower install
To start the development server:
node server.js
or
NODE_ENV=development node server.js
To start the production server:
NODE_ENV=production node server.js
Open and run Protocore on browser
http://localhost:8000
Assuming that Docker is already installed & running.
Open terminal, change directory to the repository where you cloned Protocore and start root session
sudo -s
Build Protocore docker image
docker build -t <username>/<repository>
Verify if image got successfully created
docker images
Run Create image in background
docker run -d <username>/<repository>
Verify if the images is running in background
docker ps
Open and run Protocore on browser
http://localhost:8000
Nebula-cli is a command line generator for Nebula. This tool will help to generate a walking application skeleton for a typical Backbone web apps.
The server side codebase resides in the server.js
and config.js
files. By default, the server layer is written in JavaScript (Node.js with Express 4.0) which can be configured and flexible to work with any server side scripting language like Java, PHP, ASP.NET or others. As client and server layer are seperate entity.
The client side codebase resides in the src
folder. This folder contains following subfolders.
+-- /stylesheets
+--/css
+--/less
+-- /systems
+--/frameworks
+--/libs
+--/utilities
+-- /templates
+-- /locales
+--/en
+-- /assets
+--/fonts
+--/icons
+--/images
+-- /apps
+--/models
+--/views
+--/collections
+--/router
+--/core
Nebula comes with Grunt ecosystem - a JavaScript task runner to perform repetitive tasks like minification, compilation, unit testing, linting etc. Many of the tasks you need are already available as published Grunt plugins.
Few task automations has been configured to detect errors and potential problems in codebase and to enforce your team's coding conventions.
Following are the default Grunt plugins that has been integrated with Nebula architecture.
Automations tasks & commands
Linting commands |
---|
Markdown : grunt mdlint |
HTML/Templates : grunt htmlhint |
JavaScript : grunt jshint AND grunt jscs |
JSON : grunt jsonlint |
CSS : grunt csslint |
Build commands |
---|
Production : grunt build |
Compilation commands |
---|
LESS for development : grunt compileLessDev |
LESS for production : grunt compileLessProd |
Watch commands |
---|
LESS Compilation for development : grunt watchless |
Unit test commands |
---|
Browser: http://localhost:8080/tests/ install http-server npm |
Console: grunt qunit |
Report generator commands |
---|
Plato : grunt analysis OR grunt plato |
Boneloop provides a client-[server]-side stack for building enterprise grade HTML5/Marionette applications. It could be used with any server side like Node.js, Ruby, PHP, JEE, Spring etc.
By default it's server side environment comes with Node.js - Loopback (StrongLoop)
We really appreciate all kind of contributions. Special thanks to contributors for using and supporting Nebula.
To request a feature or you find any typo errors, enhancements or questions; please feel free to post it on following link, or vote for the ones that are already registered.
Tracking: https://github.com/Nebula-UI/Nebula/issues
The MIT License (MIT)
Copyright (c) 2016 Ashwin Hegde