evectr.api

4.0.4 • Public • Published

evectr.api

The official eVectr™ API.

Sourcegraph for Repo Reference Count Sourcegraph for Repo Reference Count Sourcegraph for Repo Reference Count Sourcegraph for Repo Reference Count

Contents

  1. Prequisites
    1. Structure
  2. Setup
    1. Pre-Configuration
    2. Installing
    3. Post-Configuration
    4. Launching
  3. Modules
    1. dffrnt.confs
    2. dffrnt.utils
    3. dffrnt.model
    4. dffrnt.route
  4. License

Prequisites

  • NodeJS (Latest)
  • NPM (Installed with NodeJS)
  • REDIS (See Structure below)
    • Install this in the same parent folder as this project under REDIS/
  • MySQL (v5.6+)
    • A user@% account is required for later configuration

Structure

Parent_Folder/ (Name NOT important)
   ├── dffrnt.api/ (Project-Root; any no-spaced Name will do)
   │   ├── config/ (Reference only; no need to create these!)
   │   └── ...
   └── REDIS/ (Name important! Don't change this name!!)

In this document, ./, refers to the project root; while, ../, refers to the parent folder


Setup

Pre-Configuration

  1. Ensure the folder structure is setup.

  2. Ensure the prequisites are installed.

    • If the install method you chose for REDIS installs the files in a default location, be sure to symlink that location to the ../REDIS/ directory.
  3. In the MySQL database, create a user@% for yourself.

    • Be sure to give yourself appropriate permissions.
  4. Configure the redis.conf file in the ../REDIS/ folder:

    # ../REDIS/redis.conf
     
    ################################## SECURITY ###################################
    # Require clients to issue AUTH <PASSWORD> before processing any other
    # ...
    # use a very strong password otherwise it will be very easy to break.
    #
    requirepass p@ssw0rd_h3r3!

Installing

  1. Download or git this project into the parent folder.

  2. In your command line, cd into the project root location.

  3. Install some packages at the global level:

    1. Run chmod +x ./.docs/npm_global.sh to make it excutable.

    2. Run sudo ./.docs/npm_global.sh to install some important, *global packages.

      These can be utilized across ANY or your projects:

      Package Description
      babel-cli A next-gen (ES6) JavaScript compiler.
      bower A package-manager for Browser plugins.
      cors A middleware for Cross-Origin Resource Sharing.
      depcheck A tool for analyzing the dependencies in a project
      express A fast, unopinionated, minimalist web framework for NodeJS.
      gulp A toolkit that helps automate development workflow tasks.
      less The dynamic stylesheet language.
      less-plugin-clean-css A gulp plugin for LESS -> CSS using clean-css.
      nodemon Will watch for files changes and restart your application.
  4. Run npm link gulp && gulp setup to:

    • Install the npm packages.
    • Install the bower components.
    • Initialize the config files.
    • Link the framework modules.

Post-Configuration

  1. In the ./config/ folder, configure the settings.js file:

    // ./config/settings.js 
    export default {
        Debug: true, // Debug‑Mode will display verbose Logs
        // This is the Server's listening Port
        Port: 3001, 
        // If using as a separate Frontend...
        API: 'http://localhost:3001',
        // Setup Folders for Static Content 
        Folders: 
            Uploads: { 
                Folder:  'storage',
                // Cache‑Age for Browser files
                Age: 365*86400, 
                // ...
            }
        },
        Session: {
            // This should be something hard to guess, like a phrase
            Secret: '¿mYd0GiS!nmYeyE&shEs4yS@uE?',
            Age:    (((3600*1000)*4)*1),  // TTL for User Sessions
            REDIS:  {
                Host: 'localhost', // Or whereever you keep it
                Port: 6379, // Listening Port
                // The password you configured earlier
                Password: 'p@ssw0rd!',
            },
            Auth: { /* ... */ }
        }
    };
  2. Still in the ./config/ folder, configure the database.js file:

    // ./config/database.js
    export default {
        Config: {
            user:     'user', // The one you created in MySQL
            database: 'mydatabase', // The DB
            // ...
        },
        Pool: {
            HeadEx1: {
                host: 'XXX.XXX.XXX.XXX', // The eVectr IP
                // The one you created in MySQL 
                password: 'p@ssw0rd_h3r3!' 
            },
        }
    };

Launching

  1. Lastly, still in the project root, type gulp and hit ENTER to run, and watch the logs as the server starts up:

    Initial Gulp-Tasks being completed Initial gulp tasks being completed.

    Nodemon Monitoring Startup File monitoring, courtesy of nodemon.

    Node Server Startup The node server starting up.

    • If there are no glaring errors, you're done!
    • Otherwise... Sh!t..? ¯\_(ツ)_/¯
  2. In your browser, navigate to localhost:3001/api-explorer (or whatever port you chose) and you'll see the API Exploration UI. Use this to test your endpoints and/or single sign-on functionality.

  3. Hit CTRL+C to stop the server.


Modules

dffrnt.confs

Initial default Configs used within the DFFRNT.API Framework.

dffrnt.model

A collection of SQL Utilities & MySQL connector.

dffrnt.route

An Express/Passport/MySQL-based API Router.

dffrnt.utils

A collection of useful API Utilities & PolyFills.


License

License: MIT

Package Sidebar

Install

npm i evectr.api

Homepage

evectr.com

Weekly Downloads

244

Version

4.0.4

License

MIT

Unpacked Size

6.48 MB

Total Files

150

Last publish

Collaborators

  • leshaunj