Repository files navigation WebbyLab's Starter App for Node.JS projects
Based on ideas of Clean Architecture and DDD
Battle tested
Well defined abstractions (controllers, use case layer, domain model etc).
Works for small and large projects
Follows 12 factor app approach
EcmaScript Modules and latest JS features without transpiling
ES6 classes for Sequalize out of the box
Supports both REST API and JSON RPC (WS)
Continuation Local Storage enabled by default for transactions and logs tracking
Follows security best practices
Docker support
Covered with tests (db dependent tests, code coverage etc)
Built on top of express.js
User management out of the box (in progress)
S3 support out of the box even for local development
SMTP support (with development and testing mocks)
Works in Linux, Mac, Windows
Automatically generate CRUD from Sequelize Model (Read more here )
Paranoid eslint rules to cover all edge cases that we can with static analysis.
Authtentication with different strategies (FB etc)
CQRS for reports out of the box
Add more secutiry features to eslint static analysis
Add GraphQL support
Split chistajs into seprate modules for RESTAPI/GraphQL/JSONRPC support
NodeJS v14+
Docker v18+
Docker Compose v1.23+
docker-compose -f docker/docker-compose.yml up
npm install
npm run migration:db
npm run migration:test
npm test
npm run nodemon
RUN IN CONTAINER (DOCKER) (in progress)
make sure docker and docker-compose are installed
create .env file in project root directory (it could be empty)
run docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml up
nodemon - runs app with nodemon
docker:dev:up - starts app and infrastructure using docker-compose
docker:dev:down - stops docker-compose from "docker:dev:up"
docker:up - starts infrastructure (db, smtp-server, imageproxy, adminer, s3-server) using docker-compose
docker:down - stops docker-compose from "docker:up"
start - runs app with node (NODE_ENV=production)
test:lint - runs eslint for: lib/, tests/, app.mjs
test:ava - runs tests with ava
test:coverage - runs coverage test with c8
test:audit - runs npm audit
test - runs all tests: lint, audit, ava, coverage
create:admin - creates new admin: npm run create:admin -- --email=your@email.com --password=password
migration:db - runs sequelize migration with --env db parameter
migration:test - runs sequelize migration with --env test-db parameter
generate - generates folders/files from Sequelize Model
About
WebbyLab's production ready Starter App for NodeJS projects
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.