Protocore is an open source walking application skeleton for a typical unstructured JavaScript/jQuery web apps. You can use it to quickly bootstrap your unstructured JavaScript/jQuery web application projects.
- Node.js v6.0.0 or above
As Protocore is based on JavaScript. It is assumed user already knows JavaScript and jQuery.
For understanding Protocore, knowledge of following JavaScript libraries/frameworks are must.
- Require.js - a JavaScript file and module loader.
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
Get Protocore docker image
docker pull hegdeashwin/protocore
Verify if image got successfully created
docker images
Run Create image in background
docker run -d -p 8000:8000 hegdeashwin/protocore
Verify if the images is running in background
docker ps
Open and run Protocore on browser
http://localhost:8000
protocore-es6-edition is a special ECMAScript 6 implementation edition of Protocore project.
protocore-webpack-edition is a special Webpack implementation edition of Protocore project.
generator-protocore is a Yeoman generator for Protocore. The tool will help to generate walking application skeleton for a typical unstructured JavaScript/jQuery web apps.
Protocore-cli is a command line generator for Protocore. This tool will help to generate a walking application skeleton for a typical unstructured JavaScript/jQuery 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.x) 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.
/src
+-- /stylesheets
+--/css
+--/less
+--/common
+--/base
+--/layout
+--/modules
+--/state
+--/theme
+-- /assets
+--/fonts
+--/images
+-- /apps
+--/controller
+--/models
+--/views
+--/router
+--/templates
+-- /bower_components [Created by ```bower install``` command]
The test side codebase resides in the tests
folder. This folder contains following subfolders.
/tests
+-- /configs
+-- /apps
+--/controller
+--/models
+--/views
+--/router
The codebase comes with LESS setup with a Scalable and Modular Architecture for CSS (SMACSS)
approach. SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It is an attempt to document a consistent approach to site development when using CSS.
Protocore 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 Protocore codebase.
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 |
Report generator commands |
---|
Plato : grunt analysis OR grunt plato |
Travis CI is a continuous integration service, which can monitor GitHub for new commits
to your repository and execute scripts such as building the app or running tests. The Protocore
contains a Travis configuration file, .travis.yml
, which will cause Travis to run your tests
when you push to GitHub.
You will need to enable the integration between Travis and GitHub. See the Travis website for more instruction on how to do this.
Developed & maintained by author: Ashwin Hegde and contributions.
We really appreciate all kind of contributions. Special thanks to contributors for using and supporting Protocore.
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. https://github.com/Protocore-UI/Protocore/issues
The MIT License (MIT)
Copyright (c) 2016 Ashwin Hegde