• Stars
    star
    185
  • Rank 202,620 (Top 5 %)
  • Language
    JavaScript
  • Created about 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WebbyLab's production ready Starter App for NodeJS projects

WebbyLab's Starter App for Node.JS projects

logo

  1. Based on ideas of Clean Architecture and DDD
  2. Battle tested
  3. Well defined abstractions (controllers, use case layer, domain model etc).
  4. Works for small and large projects
  5. Follows 12 factor app approach
  6. EcmaScript Modules and latest JS features without transpiling
  7. ES6 classes for Sequalize out of the box
  8. Supports both REST API and JSON RPC (WS)
  9. Continuation Local Storage enabled by default for transactions and logs tracking
  10. Follows security best practices
  11. Docker support
  12. Covered with tests (db dependent tests, code coverage etc)
  13. Built on top of express.js
  14. User management out of the box (in progress)
  15. S3 support out of the box even for local development
  16. SMTP support (with development and testing mocks)
  17. Works in Linux, Mac, Windows
  18. Automatically generate CRUD from Sequelize Model (Read more here)
  19. Paranoid eslint rules to cover all edge cases that we can with static analysis.

TODO

  1. Authtentication with different strategies (FB etc)
  2. CQRS for reports out of the box
  3. Add more secutiry features to eslint static analysis
  4. Add GraphQL support
  5. Split chistajs into seprate modules for RESTAPI/GraphQL/JSONRPC support

RELATED CONFERENCE TALKS

In English:

In Russian:

REQUIREMENTS

  • NodeJS v14+
  • Docker v18+
  • Docker Compose v1.23+

RUN DEVELOPMENT VERSION

  1. docker-compose -f docker/docker-compose.yml up
  2. npm install
  3. npm run migration:db
  4. npm run migration:test
  5. npm test
  6. npm run nodemon

RUN IN CONTAINER (DOCKER) (in progress)

  1. make sure docker and docker-compose are installed
  2. create .env file in project root directory (it could be empty)
  3. run docker-compose -f docker/docker-compose.yml -f docker/docker-compose.dev.yml up

SCRIPTS

  • 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=[email protected] --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

More Repositories

1

itsquiz-wall

Isomorphic application written in React
JavaScript
520
star
2

php-validator-livr

Lightweight PHP validator supporting Language Independent Validation Rules Specification (LIVR)
PHP
44
star
3

eslint-plugin-more

Extra rules for Eslint
JavaScript
37
star
4

livr-playground

LIVR Playground
JavaScript
10
star
5

js-html-to-pdf

Converts html(with svg) to pdf in browser (or in phonegap app)
HTML
7
star
6

node-service-layer

Base class for service layer for nodejs applications
JavaScript
7
star
7

react-native-demo

React Native Demo App
JavaScript
6
star
8

express-markdown-browser

Express middleware for viewing documentation in markdown
CSS
6
star
9

eslint-config-webbylab

WebbyLab's ESLint config, following our styleguide
JavaScript
6
star
10

ansible-role-exim4-sender

Ansible role for send-only exim4 setup on Ubuntu server
4
star
11

ansible-role-perl

Ansible role for Perl environment(Carton, cpanm) setup on ubuntu server
4
star
12

mongoose-user-password

Mongoose plugin for checking and hashing user password
JavaScript
3
star
13

react-components

React components (work in progress) (webpack with traceur-loader required)
JavaScript
3
star
14

hal2js

HAL to JavaScript compiler written in 24h at WebbyLab's hackaton
JavaScript
3
star
15

node-itsquiz-api

Official client for itsquiz.com REST API
JavaScript
2
star
16

redmine-reports-ui

Web client for redmine-reports-api
JavaScript
2
star
17

ansible-role-redis

Ansible role for redis db (Ubuntu server)
2
star
18

ansible-role-mongodb

Ansible role for mongo db (Ubuntu server)
2
star
19

ansible-role-common

Ansible role for common setup of Ubuntu server
2
star
20

redmine-reports-ansible

Ansible deployment scripts for Redmine Reports application
2
star
21

ansible-role-ruby

Ansible role for Ruby 2 (Ubuntu server)
2
star
22

node-msoffice-mhtml-doc

Create doc files in MHTML format
JavaScript
1
star
23

ansible-role-mysql

Ansible role for mysql db (Ubuntu server)
1
star
24

redmine-reports-api

Advanced time spent reports for Redmine (api)
JavaScript
1
star
25

ansible-role-nginx-proxy

Ansible role for nginx setup as reverse proxy on Ubuntu server
1
star
26

bunyan-singletone-facade

Bunyan logger singletone facade
JavaScript
1
star