/UkVXQUE-

UkVXQUE= Node Backend

Primary LanguageJavaScript

UkVXQUE=

UkVXQUE= Full Stack Developer Assignment (Backend)

This is Backend project for an assignment task for Full Stack Developer role at UkVXQUE=.

Getting Started

Requirements

For development, you will need latest version of Node.js, MySQL and a node global package, NPM, installed in your environement.

Installation

To install all dependencies, run:

npm install

Running Project

Before starting the project, please check config.json file for updating database configuration and JWT Secret.

To start the project, run:

npm start

Visit http://localhost:3000 in your browser. Angular dist app is already included in this backend project.

Running Unit Tests

To start the project, run:

npm test

Functional Requirements Covered

Almost all functionalities are covered.

  1. Login and Registration. (Token based authentication mechanism)
  2. Products CRUD operations with proper authorization.

Dependencies

  • bcryptjs: Optimized bcrypt in plain JavaScript with zero dependencies. Compatible to 'bcrypt'.
  • chai: BDD/TDD assertion library for node.js and the browser. Test framework agnostic.
  • chai-http: Extend Chai Assertion library with tests for http apis
  • cookie-parser: Parse HTTP request cookies
  • cors: Node.js CORS middleware
  • debug: small debugging utility
  • express: Fast, unopinionated, minimalist web framework
  • express-jwt: JWT authentication middleware.
  • http-errors: Create HTTP error objects
  • joi: Object schema validation
  • jsonwebtoken: JSON Web Token implementation (symmetric and asymmetric)
  • mocha: simple, flexible, fun test framework
  • morgan: HTTP request logger middleware for node.js
  • mysql2: fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS
  • rootpath: Little helper to make node.js require relative to your project root
  • sequelize: Multi dialect ORM for Node.JS

Dev Dependencies

  • nodemon: Simple monitor script for use during development of a node.js app.