# Project A project is an entity that solves a specific task. Abstractable components of multiple projects should be extracted into another new project. Node.js projects are published on NPMjs.com in the `@openstapps` group. ## Structure Node.js/TypeScript based projects should employ the following structure: ``` src/ Sources test/ Test files lib/ Compiled sources cli.js cli tool index.js API (classes, function, constants, ...) index.d.ts TypeScript definitions for API .editorconfig .gitignore List of files that should be ignored by git .npmignore List of files that should be ignored by npm package.json Package description package-lock.json Meta file, that fixates dependencies README.md Description of project, entry point for documentation tsconfig.json TypeScript configuration tslint.json TSLint configuration ``` ### `@openstapps/configuration` For the contents and purpose of `.editorconfig`, `tsconfig.json` and `tslint.json` refer to `@openstapps/configuration`. ## Further resources * [Coding style](CODING.md) * [Versioning](VERSIONING.md)