/ment

A backend boilerplate for apps built using expressjs, node, mongodb using typescript

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Build Status Code Climate Dependency Status Dev Dependency Status Known Vulnerabilities Node 11 Npm 6 Webpack 5 codecov Coverage Status contributions welcome PRs Welcome code style: Tslint Latest FOSSA Status Apache License, Version 2.0

MENT

A backend boilerplate for MongoDB ExpressJs Typscript NodeJs App

Issues, suggestions and feature requests

We are actively maintaining this boilerplate, please report any issues or suggestion for improvement at https://github.com/mistaguy/ment/issues

Development and contribution

Prerequisite: Install git, node package manager, webpack CLI, grunt CLI

To contribute, fork and clone.

> git clone https://github.com/mistaguy/ment.git

The code is in typescript. Use a typescript IDE of your choice, like Visual Studio Code or WebStorm.

To set up the development environment, run:

> npm install

To automatically compile, bundle and push code changes to the running test project, run:

> npm start

To run the project unit tests with code coverage, results can be found at dist/testresults/coverage/index.html, run:

> npm run test:unit

Run the unit test continuously during development:

> npm run test:dev

Run the end to end test during development:

> npm run test:e2e:dev

Scripts

While developing, you will probably rely mostly on npm start; however, there are additional scripts at your disposal:

npm run <script> Description
start Build the project and monitor source and config for changes and rebuild. Start the dev server
watch Build the project and monitor source and config for changes and rebuild.
prod:server:start starts the application in production as daemon and restart it in case of crashes
prod:server:stop stop an instance of the application running
emit Output javascript code
test Runs lint, build, unit tests with mocha and generates a coverage report
test:dev Runs mocha and watches for changes to re-run tests; does not generate coverage reports.
test:unit Runs unit tests with mocha and generates a coverage report.
build:prod Build app optimized for production
build:dev Build app optimized for debugging.
lint Lint all .js files.
lint:fix Lint and fix all .ts files.