Overview

Zip file structure:

-admin
  - angular // angular version
    -app // folder with non-builded angular app
    -dist // folder with builded angular app
      |-compiled // builded app with compiled files
      |-uncompiled // builded app with uncompiled files
  - non-angular // non-angular version

-corporate // corporate web template
-ecommerce // ecommerce web template
-documentation // there you can find pdf documentation
-psd // there are some psd's

Changing Main Settings

If you want to change App Name or some default layout settings you can do that in controller "MainCtrl" located at app/scripts/controllers/main.js

Building project

Build your own project using Yeoman scaffolding tool, Bower dependencies management tool and Grunt automation tool.

Required tools

For properly using this project you will need some tools installed on your computer.

  • As first make sure you have installed Node.js with package manager npm. You can check it in your terminal window using these commands node --version and npm --version. You can download Node.js here
  • As next step you need to install bower and grunt. Installing of Yeoman tool is optional.
  • I'm using SASS in this project so as next step you will need install SASS gem. You can check if you have installed this gem with this command sass -v
  • After you have all tools installed, open your terminal window an go to root folder of your project. There you need run this commands to install all dependencies npm install and bower install
  • Now you will be able to run your local server with this command grunt serve

Node.js

You can download Node.js here. Install it and check it in your terminal window with node --version and npm --version. If you get in some troubles try google it.

Now when you have node installed get to the root directory in terminal window and run command npm install. Node will download and install all dependencies for you.

Yeoman

Yeoman is a scaffolding tool which is making your workflow clear, but if you don't want to use it so you do not.

You can easily install Yeoman with npm running this command in terminal npm install -g yo

As this project is builded with Angular you will need to use angular-generator with yeoman so install it with this command npm install -g generator-angular

You can find Yeoman documentation here

Bower

Bower works by fetching and installing packages from all over, taking care of hunting, finding, downloading, and saving the stuff you’re looking for. Bower keeps track of these packages in a manifest file, bower.json.

{
  "name": "minovate",
  "version": "0.0.0",
  "dependencies": {
    "angular": "1.2.18",
    "json3": "~3.3.1",
    "es5-shim": "~3.1.0",
    "bootstrap": "~3.2.0",
    "angular-resource": "1.2.18",
    "angular-cookies": "1.2.18",
    "angular-sanitize": "1.2.18",
    "angular-animate": "1.2.18",
    "angular-touch": "1.2.18",
    "bourbon": "~4.0.2",
    "angular-fontawesome": "~0.1.2",
    "font-awesome": "~4.2.0",
    "weather-icons": "~0.0.1",
    "angular-bootstrap": "~0.11.2",
    "jquery.slimscroll": "~1.3.1",
    "animate.css": "~3.2.0",
    "jquery.sparkline": "http://omnipotent.net/jquery.sparkline/2.1.2/jquery.sparkline.js",
    "angular-loading-bar": "~0.5.1",
    "angular-ui-router": "~0.2.11",
    "angular-ui-utils": "~0.1.1",
    "bootstrap-daterangepicker": "~1.3.12",
    "ng-bs-daterangepicker": "~0.0.3",
    "angular-momentjs": "~0.1.8",
    "angular-fullscreen": "~1.0.0",
    "angular-ui-tree": "~2.1.5",
    "simple-line-icons": "~0.0.1",
    "html.sortable": "~0.1.5",
    "angular-toastr": "~0.4.0",
    "angular-bootstrap-nav-tree": "*",
    "oclazyload": "~0.3.8",
    "chosen": "https://github.com/harvesthq/chosen/releases/download/v1.2.0/chosen_v1.2.0.zip",
    "angular-ui-select": "~0.8.3",
    "textAngular": "~1.2.2",
    "angular-bootstrap-colorpicker": "~3.0.8",
    "angular-file-upload": "~1.1.5",
    "ngImgCrop": "~0.2.0",
    "angular-datatables": "~0.2.1",
    "angular-ui-grid": "~3.0.0-rc.12",
    "ng-table": "~0.3.3",
    "angular-smart-table": "~1.4.2",
    "morrisjs": "~0.5.1",
    "flot": "~0.8.3",
    "flot.tooltip": "~0.8.4",
    "angular-flot": "~0.0.6",
    "flot-spline": "*",
    "d3": "~3.4.13",
    "rickshaw": "~1.5.0",
    "angular-rickshaw": "~0.5.0",
    "owl-carousel": "~1.3.2",
    "angular-google-maps": "~2.0.9",
    "angular-ui-calendar": "~0.8.1"
  },
  "devDependencies": {
    "angular-mocks": "1.2.16",
    "angular-scenario": "1.2.16"
  },
  "appPath": "app"
}

You can easily install Yeoman with npm running this command in terminal npm install -g bower

Now when you have bower installed get to the root directory in terminal window and run command bower install. Bower will download and install all dependencies from bower.json file for you.

If you want add and install any additional dependency you can do it by running this command in root folder bower install 'package name'

Sass

Grunt will need Sass to be installed to compile Sass files into css and run project properly so we need to install it.

As first you need ruby installed on your computer. On windows download and install rubyinstaller from here. If you have ruby installed you can download sass gem with this command gem install sass. You can check if sass is installed properly by sass -v

If we have Sass installed run this command npm install grunt-contrib-sass --save-dev, after that we can use grunt to compile Sass files into css.

You can check documentation for Sass here or check this tutorial

Grunt

Grunt is a JavaScript task runner (Automation), save yourself from repetitive tasks.

There are two important files for grunt Grunfile.js and package.json. Gruntfile.js contains configurations for all plugins that grunt use. In package.json you can find all plugins that grunt use.

As we have all configured in this project we can run localhost server with this command from root folder grunt serve

To build your project use this command from root folder grunt build:dev

Grunt without minify/uglify

If you want build project with Grunt and don't want to minify/uglify files, you have to use Gruntfile-nominify.js for building. Just rename this file to Gruntfile.js and run build.

CSS

Main css file is compiled with Sass, all Sass files you can find in this folder app/sass. Every part is divided into skeleton tree.

Colors

There are few default color palletes that you can use by assigning it's classes to elements. You can find all of them in file app/sass/shared/_global.scss from line 25.

For background you can use class .bg-'color-variant' and for text .text-'color-variant'

.bg-cyan

.dker .dk .bg .lt .lter

.bg-amethyst

.dker .dk .bg .lt .lter

.bg-green

.dker .dk .bg .lt .lter

.bg-orange

.dker .dk .bg .lt .lter

.bg-red

.dker .dk .bg .lt .lter

.bg-greensea

.dker .dk .bg .lt .lter

.bg-dutch

.dker .dk .bg .lt .lter

.bg-hotpink

.dker .dk .bg .lt .lter

.bg-drank

.dker .dk .bg .lt .lter

.bg-blue

.dker .dk .bg .lt .lter

.bg-lightred

.dker .dk .bg .lt .lter

.bg-slategray

.dker .dk .bg .lt .lter

.bg-darkgray

.dker .dk .bg .lt .lter

.bg-primary

.dker .dk .bg .lt .lter

.bg-success

.dker .dk .bg .lt .lter

.bg-warning

.dker .dk .bg .lt .lter

.bg-danger

.dker .dk .bg .lt .lter

.bg-info

.dker .dk .bg .lt .lter

.bg-default

.dker .dk .bg .lt .lter

.bg-tr-black (transparent-black, there are also .bg-white and .bg-tr-white)

.dker .dk .bg .lt .lter

Layout

Fix Header, add header-fixed class in body element.

Fix Aside, add aside-fixed class in body element.

Static Header, add header-static class in body element.

Static Aside, add aside-static class in body element.

Boxed Layout, add boxed-layout class in body and html element.

Small Sidebar, add sidebar-sm-forced sidebar-sm classes in body and html element.

Extra-Small Sidebar, add sidebar-xs-forced sidebar-xs classes in body and html element.

Horizontal Menu, add hz-menu class in body and html element.

Rtl Layout, add rtl class in body and html element.

Global Classes

Text Sizes
.text-xs font-size: 10px;
.text-sm font-size: 12px;
.text-md font-size: 14px;
.text-lg font-size: 18px;
.text-elg font-size: 32px;
Displays
.block display: block
.inline display: inline
.inline-block display: inline-block
Margins
.m-auto margin: auto
.m-40, .mt-40, .mr-40, .mb-40, .ml-40 margin: 40px, margin-top: 40px, margin-right: 40px, margin-bottom: 40px, margin-left: 40px
.m-20, .mt-20, .mr-20, .mb-20, .ml-20 margin: 20px, margin-top: 20px, margin-right: 20px, margin-bottom: 20px, margin-left: 20px
.m-10, .mt-10, .mr-10, .mb-10, .ml-10 margin: 10px, margin-top: 10px, margin-right: 10px, margin-bottom: 10px, margin-left: 10px
.m-5, .mt-5, .mr-5, .mb-5, .ml-5 margin: 5px, margin-top: 5px, margin-right: 5px, margin-bottom: 5px, margin-left: 5px
.m-0, .mt-0, .mr-0, .mb-0, .ml-0 margin: 0, margin-top: 0, margin-right: 0, margin-bottom: 0, margin-left: 0
Paddings
.p-30, .pt-30, .pr-30, .pb-30, .pl-30 padding: 30px, padding-top: 30px, padding-right: 30px, padding-bottom: 30px, padding-left: 30px
.p-20, .mt-20, .mr-20, .mb-20, .ml-20 padding: 20px, padding-top: 20px, padding-right: 20px, padding-bottom: 20px, padding-left: 20px
.p-15, .pt-15, .pr-15, .pb-15, .pl-15 padding: 15px, padding-top: 15px, padding-right: 15px, padding-bottom: 15px, padding-left: 15px
.p-10, .pt-10, .pr-10, .pb-10, .pl-10 padding: 10px, padding-top: 10px, padding-right: 10px, padding-bottom: 10px, padding-left: 10px
.p-0, .pt-0, .pr-0, .pb-0, .pl-0 padding: 0, padding-top: 0, padding-right: 0, padding-bottom: 0, padding-left: 0
Borders
.b-0 border: 0
.bt-0 border-top: 0
.bb-0 border-bottom: 0
.b-a border: 1px solid rgba(0,0,0,.05)
.b-t border-top: 1px solid rgba(0,0,0,.05)
.b-r border-right: 1px solid rgba(0,0,0,.05)
.b-b border-bottom: 1px solid rgba(0,0,0,.05)
.b-l border-left: 1px solid rgba(0,0,0,.05)
.b-dashed border-style: dashed
.b-solid border-coloe: #ddd
.b-2x border-width: 2px
.b-3x border-width: 3px
.b-'color-variant' (.b-cyan) border-color: 'color-variant'
Border Radius
.br-0 border-radius: 0
.br-2 border-radius: 2px
.br-2-t border-radius: 2px 2px 0 0
.br-2-r border-radius: 0 2px 2px 0
.br-2-b border-radius: 0 0 2px 2px
.br-2-l border-radius: 2px 0 0 2px
Sizes
.size-30x30, .wh30 width: 30px; height: 30px
.size-45x45, .wh45 width: 45px; height: 45px
.size-50x50, .wh50 width: 50px; height: 50px
.w-xxs, .w-60 width: 60px
.w-xs, .w-100 width: 100px
.w-sm, .w-150 width: 150px
.w-md, .w-240 width: 240px
.w-lg, .w-280 width: 280px
.w-xl, .w-360 width: 360px
.w-xxl, .w-420 width: 420px

AngularJS

You must have some basic knowledge about AngularJS and some Angular modules (ui-router) to start work with this project.

Core Modules

ui-router, for Nested Routing and Nested View, check the official documents

ui-utils, many useful utilities for Angular including jQuery Passthrough for calling jQuery functions, official documents

oclazyload, for lazy loading of js and css files, official documents

resolve: {
  plugins: ['$ocLazyLoad', function($ocLazyLoad) {
    return $ocLazyLoad.load([
      'scripts/vendor/datatables/datatables.bootstrap.min.css'
    ]);
  }]
}

Directives

Official Directives
angular-fontawesome A simple directive for FontAwesome icons, documentation
ui-bootstrap Bootstrap components written in pure AngularJS, documentation
angular-loading-bar An automatic loading bar using angular interceptors, documentation
angular-momentjs Moment.js with Angular.js, documentation
lazyModel AngularJS directive that works like ng-model but accept changes only when form is submitted, documentation
angular-toastr Angular port of CodeSeven/toastr, documentation
angularBootstrapNavTree This is a Tree directive for Angular JS apps that use Bootstrap CSS, documentation
ui.select AngularJS-native version of Select2 and Selectize, documentation
ui.tree Angular UI Tree is an AngularJS UI component that can sort nested lists, documentation
textAngular A radically powerful Text-Editor/Wysiwyg editor for Angular.js, documentation
colorpicker.module Native AngularJS colorpicker directive, documentation
angularFileUpload Angular File Upload is a module for the AngularJS framework, documentation
ngImgCrop Image Crop directive for AngularJS, documentation
datatables Datatables directives for AngularJS, documentation
ui.grid A data grid for AngularJS, part of the AngularUI suite, documentation
ngTable Angular Table directive, documentation
smart-table Code source of Smart Table module: a table/grid for Angularjs, documentation
angular-flot An Angular directive which wraps Flotcharts, documentation
angular-rickshaw An AngularJS directive for Rickshaw, documentation
uiGmapgoogle-maps AngularJS directives to integrate Google Maps into your applications, documentation
ui.calendar A complete AngularJS directive for the Arshaw FullCalendar, documentation
Custom Directives app/scripts/directives
activatebutton.js Directive for animate button activate
active-toggle.js Directive for toggling active class on element and target
anchor-scroll.js Scroll to anchor point directive
chart-morris.js Directive for morris charts
check-toggler.js Directive for togglick class checked
clock.js Directive for svg analog clock
collapsesidebar.js Aside collapsing directive
daterangepicker.js Directive for daterangepicker
formsubmit.js Validate form at submit directive
gaugechart.js Gauge Charts directive
navcollapse.js Dropdown collapsing in main navbar directive
onblurvalidation.js Validate form field on blur directive
pageloader.js Pageloader directive
prettyprint.js Google prettyprint directive
ripple.js Add ripple effect to main menu button
slimscroll.js Use slimscroll scrollbars
sparkline.js Sparkline charts directive
tilecontrolclose.js Remove tile from DOM
tilecontrolfullscreen.js Show tile in fullscreen
tilecontrolrefresh.js Refresh tile
tilecontroltoggle.js Toggle/Expand tile

Plugins

jQuery Plugins.

Plugins

jquery.slimscroll Transforms any div into a scrollable area with a nice scrollbar, documentation
jquery.sparkline This jQuery plugin generates sparklines (small inline charts), documentation
moment.js Parse, validate, manipulate, and display dates in JavaScript, documentation
daterangepicker.js This date range picker component for Bootstrap creates a dropdown menu from which a user can select a range of dates, documentation
html.sortable.js Lightweight jQuery plugin to create sortable lists and grids using native HTML5 drag and drop API, documentation
Datatables DataTables is a plug-in for the jQuery Javascript library, documentation
raphael.js Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web, documentation
morris.js good-looking charts shouldn't be difficult, documentation
jquery.flot.js Attractive JavaScript plotting for jQuery, documentation
rickshaw.js Rickshaw is a JavaScript toolkit for creating interactive time series graphs, documentation
fullcalendar.js FullCalendar is a jQuery plugin that provides a full-sized, drag & drop event calendar, documentation
chosen.jquery.min.js Chosen is a library for making long, unwieldy select boxes more friendly, documentation
owl-carousel Touch enabled jQuery plugin that lets you create beautiful responsive carousel slider, documentation