node package manager

generator-ats-node-webapp

Build Status Code Climate Test Coverage Dependency Status Dev Dependency Status # generator-ats-node-webapp

A Yeoman generator for generating kick-ass NodeJS Web Applications

Key Features

  • Declarative RESTful API
  • React and Angular client implementations
  • OAuth Scaffolding (Facebook, Twitter, Github, Google)
  • Extensible Gulp build system
  • Testing examples
  • Client-only mode
  • MongoDB/Mongoose persistence

Getting Started

Prerequisites

  • NodeJS - brew install nodejs
  • Yeoman - sudo npm install yo -g
  • A Running Database

Usage

> npm install generator-ats-node-webapp -g
> yo ats-node-webapp

Command-Line Options

  • client (optional) - Possible Values: react, angular
  • server (optional) - Possible Values: full, thin
  • oauthStrategies (optional) - Possible Values (comma-separated): google, github, facebook, twitter

Project Layout

generated_project
└───gulp/ (Build System)
    ├───tasks/ (task files, automatically included during build)
└───config/ (Application Configuration)
    ├───custom-environment-variables.coffee (Environment-Variable => Configuration Mapping)
    ├───default.coffee (Default configuration - always included as base layer)
    ├───<environment>.coffee (Environment-specific configuration)
└───scripts
    ├───npm/ (scripts executed by npm)
    ├───git/ (git hooks)
└───server    
    ├───components/ (application components, should be class-based, testable)
    ├───errors/ (custom error types, optionally contain an errorCode property to configure HTTP response codes)
    ├───initialization/ (server initialization scripts)
    ├───middleware/ (functions that are composed to define RESTful endpoints. These should interact with the domain, but not contain domain logic.)
    ├───persistence/ (mongoose setup)
        ├───models/ (mongoose models definitions using Mongoose-Organizer)
    ├───routers/ (RESTful endpoint definitions)
    ├───routers.spec/ (RESTful endpoint tests, separate folder because routers is scanned by express-mountie)
└───client (Web Client Implementation - e.g. React, Angular)
    ├───app.js (bundled by browserify)
    ├───assets/ (static assets)
    ├───styles/ (Sass)

License

Apache 2.0

ATS ❤ Yeoman