- Node.js - http://nodejs.org/
- Express - http://expressjs.com/
- nodemon - https://www.npmjs.com/package/nodemon
- pm2 - https://www.npmjs.com/package/pm2
- error handling
- database structure folder
- testing with jest
- coverage use jest
- with docker example
- validiation, use express-valdator and joi
- pagination example
- custom message api response
- eslint airbnb base
- jestjs - https://jestjs.io/
cp .env-sample .env- via yarn or npm :
# install package
npm install or yarn install
# running app
npm run dev or yarn dev
# running unit tetsing
npm run test or yarn test- via make :
# start aplication with docker
make docker-start
# stop docker container
make docker-stop
# remove docker container
make docker-down APP_PORT=2000
TZ=Asia/Jakarta
MONGO_SERVICE=# uri mongodb
AUTH_SOURCE= #auth service
SECRET_KEY= #jwt secret key here
#Mongodb config
MONGO_PORT=27017
MONGO_INITDB_ROOT_USERNAME= #username
MONGO_INITDB_ROOT_PASSWORD= #password
MONGO_INITDB_DATABASE= #db namedocker-compose up --builddocker-compose up --build -d# install package
docker-compose exec boillerplate npm install
# running unit testing
docker-compose exec boillerplate npm run testusing swagger check in folder static
.
├── api/ * all api file here
├── config/ * all configuration file here
| └── db.js * configuration database
├── database/ * all models schema file here
| └── models * all models file
| └── migrations * all migrations file
| └── seeders * all seeders file
├── helpers/ * all helper or middleware file here
├── middleware/ * all middleware file here, for check before next to api
├── routes/ * all file route here
| └── index.js * register all route
├── static/ * all configuration swagger
| └── path * custom your path api
| └── schema * custom schema body
├── test/ * all test file here
| └── index.js * test apps
├── utils/ * all utils file here
- Guideline:
- Use camelCase for variable name, naming function, load module or other functions
- Use UpperCase for Constant Variable
- Use PascalCase for class name, models, api, route, load module model
- Use snake_case for file name as variable
- Function name use Verb
- Variable name use Noun