Skip to content

anishreddy202/Scaffold

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IOT Developer Portal

This is the Source Code Repository to be used for the IoT Developer Portal WebSite.

Issues & Documentation

JIRA Tickets Confluence

Introduction

-//TODO

Business Objectives

-//TODO

Contact List

Web Dev Design
Hari Mukkapati (Dev-Mgr) Daniel Scholl (Team-Mgr)
Anish Madhi (Dev) Johnny Chance (Design)
Rajesh Chaganti (Dev) Srini Bhukya (Design)
Karthik Vellaichamy (Dev) Ning Fang (UX)
Sung Park (Dev) Michael Mucciarone (UX)
Gerry Hernandez (Dev)

Feature List

  • TBD

General Features

  • TBD

Technical Requirements

  • MEAN Stack (Mongo, Express, Angular, Node)
  • Language (Javascript w/ TypeScript as a Superset)
  • Build Tools (Gulp)
  • Testing Tools (Mocha, Karma, Protractor)
  • Domain:
  • Responsive:
  • Browser requirements
    • Internet Explorer 11
    • Chrome 43
    • Firefox 38
    • Safari 8.0.7
  • Device Requirements
    • None
  • Page load time expectations
    • Under 3 seconds
  • Scale and anticipated volume of traffic
    • Needs to be able to handle low usage patterns
  • Environments
    • Development -- LocalHost
    • CI -- Azure Hosted
    • Production -- Laniakea Hosted
  • Analytics
    • Integration with Google Analytics

Security Requirements

  • Only open ports exposed to the Internet are 80 and 22.
  • Application Scanning may be performed prior to going live and randomly as needed by Rapid7 Nexpose or Qualys Application Scanner.
  • The application should be secured against most of the top vulnerabilities identified by OWASP

Useful Security Resources for Node and Express

  • TBD

Technical Infrastructure

Hardware/Software

The following requirements apply to the Production Hardware Installation.

FUNCTION Virtual Hardware
                                | 
                                | 

Table: Hardware Requirements.

The following requirements apply to the Production Docker Containerization

Container Purpose
                                | 
                                | 

Table: Container Requirements.

The following requirements apply to the Software Installation.

COMPONENT VERSION COMPONENT VERSION
Scripting Language Node - 0.12.2 Bower Package Module angular
  • Node Package Module | async | Bower Package Module | json3
  • Node Package Module | bcrypt-nodejs | Bower Package Module | es5-shim
  • Node Package Module | body-parser | Bower Package Module | jquery
  • Node Package Module | composable-middleware | Bower Package Module | bootstrap-sass-official
  • Node Package Module | compression | Bower Package Module | angular-resource
  • Node Package Module | connect-mongo | Bower Package Module | angular-cookies
  • Node Package Module | cookie-parser | Bower Package Module | angular-sanitize
  • Node Package Module | deasync | Bower Package Module | angular-ui-router
  • Node Package Module | debug | Bower Package Module | font-awesome
  • Node Package Module | ejs | Bower Package Module | lodash
  • Node Package Module | errorhandler | Bower Package Module | angular-google-analytics
  • Node Package Module | express | Bower Package Module | scrollmagic
  • Node Package Module | express-jwt | Bower Package Module | greensock
  • Node Package Module | express-session | Bower Package Module | underscore
  • Node Package Module | feed | Bower Package Module | moment
  • Node Package Module | joi | Bower Package Module | PatternLibrary
  • Node Package Module | jsonwebtoken | Bower Package Module | angular-uuid
  • Node Package Module | lodash | Database | MongoDB - 2.0.2
  • Node Package Module | method-override
  • Node Package Module | mongodb
  • Node Package Module | morgan
  • Node Package Module | node-linq
  • Node Package Module | node-uuid
  • Node Package Module | passport
  • Node Package Module | passport-local

Table: Installed Software Required Versions.

System Architecture Diagram

-TBD

Design Documentation

  • TBD

Continuous Integration and Deployment

CI/CD For Development via Bamboo. Docker Container Builds for Production via virtualized Jenkins server.

Development Environment

Getting Started

  1. npm install

  2. bower install

  3. tsd install

  4. Open up a Terminal Window and start up MongoDB.

     $ mongodb
    

5. Start up the Visual Studio Code Editor and ensure source code folder ./src is open.
6. To enable development build watcher <cmd><shift>B and to stop <cmd><shift>X

  _*Alternate terminal method_
  
  ```
  npm start
  ```

Build Environment
---------------

### Getting Started

portals.status DevOps uses 'ansible provisioner. It means that your build environment is built from the source code.

1. Install VirtualBox
   [https://www.virtualbox.org/wiki/Downloads](https://www.virtualbox.org/wiki/Downloads)

2. Install Vagrant
   [http://docs.vagrantup.com/v2/installation/index.html](http://docs.vagrantup.com/v2/installation/index.html)

3. Install Required Vagrant Plugins
	  -  vagrant-share (1.1.3)

4. Build your environment

   To build your environment in the chef directory execute the command:

   ```
   $ vagrant up
   ```

   Vagrant will start to build your environment. You'll see green status
   messages while the box is configuring the system.

   >
   NOTE: Vagrant supports multiple providers for virtualization.  If you have different providers installed in your machine you can specify which provider to use.

   ```
      $ vagrant up --provider=virtualbox

   ```

6. Visit [http://localhost:800](http://localhost:800) address and you'll see the jenkins build page.


### Basic Usage

Vagrant's basic commands (should be executed inside DevOps directory):


* SSH into the virtual machine.
  ```
  $ vagrant ssh
  ```

* Start the virtual machine.
  ```
  $ vagrant up
  ```

* Stop the virtual machine.
  ```
  $ vagrant halt
  ```

* Destroy the virtual machine.
>
Destroy your virtual machine. Source code and content of data directory will remain unchangeable. VirtualBox machine instance will be destroyed only. You can build your machine again with 'vagrant up' command. The command is useful if you want to save disk space.

  ```
  $ vagrant destroy
  ```

* Configure virtual machine
>
Useful if you have overwriten a file that you want reset. ie: httpd.conf

  ```
  $ vagrant provision
  ```

* Reload the virtual machine.
>
Userful when you need to change network or synced folder settings.
  ```
  $ vagrant reload
  ```

Official Vagrant site has more documentation.
[http://docs.vagrantup.com/v2/](http://docs.vagrantup.com/v2/)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published