evectr.api
The official eVectr™ API
.
Contents
Prequisites
- NodeJS (Latest)
- NPM (Installed with
NodeJS
) - REDIS (See Structure below)
- Install this in the same parent folder as this project under
REDIS/
- Install this in the same parent folder as this project under
- MySQL (v5.6+)
- A
user@%
account is required for later configuration
- A
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
-
Ensure the folder structure is setup.
-
Ensure the prequisites are installed.
- If the
install method
you chose forREDIS
installs the files in a default location, be sure tosymlink
that location to the../REDIS/
directory.
- If the
-
In the
MySQL
database, create auser@%
for yourself.- Be sure to give yourself appropriate permissions.
-
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
-
In your command line,
cd
into the project root location. -
Install some packages at the
global
level:-
Run
chmod +x ./.docs/npm_global.sh
to make it excutable. -
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
forCross-Origin Resource Sharing
.depcheck A tool for analyzing the dependencies
in a projectexpress 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 forLESS -> CSS
usingclean-css
.nodemon Will watch for files changes and restart
your application.
-
-
Run
npm link gulp && gulp setup
to:- Install the
npm packages
. - Install the
bower components
. - Initialize the
config files
. - Link the
framework modules
.
- Install the
Post-Configuration
-
In the
./config/
folder, configure thesettings.js
file:// ./config/settings.jsDebug: true // Debug‑Mode will display verbose Logs// This is the Server's listening PortPort: 3001// If using as a separate Frontend...API: 'http://localhost:3001'// Setup Folders for Static ContentFolders:Uploads:Folder: 'storage'// Cache‑Age for Browser filesAge: 365*86400// ...Session:// This should be something hard to guess, like a phraseSecret: '¿mYd0GiS!nmYeyE&shEs4yS@uE?'Age: 3600*1000*4*1 // TTL for User SessionsREDIS:Host: 'localhost' // Or whereever you keep itPort: 6379 // Listening Port// The password you configured earlierPassword: 'p@ssw0rd!'Auth: /* ... */}; -
Still in the
./config/
folder, configure thedatabase.js
file:// ./config/database.jsConfig:user: 'user' // The one you created in MySQLdatabase: 'mydatabase' // The DB// ...Pool:HeadEx1:host: 'XXX.XXX.XXX.XXX' // The eVectr IP// The one you created in MySQLpassword: 'p@ssw0rd_h3r3!';
Launching
-
Lastly, still in the project root, type
gulp
and hit ENTER to run, and watch thelogs
as theserver
starts up:Initial
gulp
tasks being completed.File monitoring, courtesy of
nodemon
.The
node
server starting up.- If there are no glaring
errors
, you're done! - Otherwise... Sh!t..? ¯\_(ツ)_/¯
- If there are no glaring
-
In your
browser
, navigate to localhost:3001/api-explorer (or whateverport
you chose) and you'll see the API Exploration UI. Use this to test yourendpoints
and/orsingle sign-on
functionality. -
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.