Skip to content

jxbadam/ns8-tech-assessment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NS8 Technical Challenge (or how I learned to hate javascript less and make it OO)

This submission is provided to prove that I might be worthy of either an interview, a job offer, or a substantial lesson in the correct way to architect javascript software. While I personally am hoping for one of the first two options the third option always looms large.

Instructions

Prerequisites

While this is a technical challenge and one would assume that the reviewer is able to get things up and running by following "standard" NodeJS practices, this is not always the case, thus the following items are given as required to run this software.

  • NodeJS version 8 (or greater)
  • The ability to read and follow simple directions and to have a great sense of humor

Installation and Available Commands

The following will install the library software upon which this program depends.

  • npm install

The following commands are available via package.json.

npm start
Perform all build operations and start the server
npm run debug
Perform all build operations and start the server in DEBUG mode (extra output to console)
npm run lint
Perform linting on the project. This will also be done as part of the build process.
npm run build
Perform all build operations but do not start the server
npm run document
Generate the project documentation (available in the [docs/](./docs/index.html) directory)
npm run test
Run all of the unit and integration tests. This will generate a coverage report available in [coverage/](./coverage/index.html)
npm run debug-test
Similar to the `debug` command above, but for the tests. Extra output will be included during the test run.
npm run tsc
Run the typescript compiler. No linting is performed. This does NOT send a runner to Tropical Smoothie Cafe for a mocha madness smoothie. You will be disappoint.

Application Programming Interface (API)

This is the meat of the application and shows all of the endpoints and how they are hooked together.

Run npm start and then use the Swagger http://localhost:3000/api-docs

Errata (Gotchas and General Discussion)

So many things can go here (lack of HTTPS, better authentication, significantly better specification of API).

I could write several pages here, however if further discussion is warranted let's schedule a phone call.

Sources

Below is a list of URLs that I referenced while implementing this project.

Developing in TypeScript

https://www.typescriptlang.org/docs/home.html

Documenting with Swagger

https://www.npmjs.com/package/swagger-ui-express https://www.npmjs.com/package/swagger-jsdoc https://swagger.io/

Testing with Mocha / Chai and NYC (formerly Istanbul)

https://journal.artfuldev.com/unit-testing-node-applications-with-typescript-using-mocha-and-chai-384ef05f32b2 https://istanbul.js.org/docs/tutorials/typescript/ https://azimi.me/2016/09/30/nyc-mocha-typescript.1.html https://medium.com/@RupaniChirag/writing-unit-tests-in-typescript-d4719b8a0a40

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •