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.
- Login and Registration. (Token based authentication mechanism)
- 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.