/kantab

[WIP] Kanban board application. Powered by Moleculer & Vue.JS

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Moleculer CI test Coverage Status

KanTab

KanTab is a kanban board application with microservices. Powered by Moleculer & Vue.

Screenshot

Tech stack

Desired features & modules:

  • Node v14.x with async/await
  • Moleculer microservices backend
  • VueJS frontend (VueX, Vue-router)
  • TailwindCSS design
  • MongoDB
  • Central configuration
  • Global REST API
  • Swagger API docs
  • GraphQL endpoint
  • Full authentication
    • Login
    • Sign Up
    • Passwordless account
    • Forgot password
    • Reset password
    • Account verification
    • Social login
      • Google
      • Facebook
      • Github
    • Two-factor authentication
    • LDAP
  • ACL/RBAC (user roles & permissions)
  • I18N
  • Websocket
  • Plugin system
  • Caching with tags
  • Metrics & monitoring
  • Unit test with Jest, Cypress
  • Unit test with Cypress
  • Docker files
  • Docker Compose file generator middleware
  • Prometheus file generator middleware
  • Kubernetes & Helm chart files
  • Kubernetes file generator middleware

Monitoring

In production, this project contains monitoring feature with Prometheus & Grafana.

Read more about it

Usage

Build frontend

The frontend Vue project is in the frontend folder. The build process generates the bundle files and copy them to the public folder which is served by the Moleculer API Gateway.

cd frontend
npm i
npm run build

Start backend

To run the backend you need a running MongoDB server on localhost. Or set the remote MongoDB uri to the MONGO_URI environment variable.

npm run dev

The application is available on http://localhost:4000

GraphQL Playground

The GraphQL playground is available on http://localhost/graphql

GraphQL Playground

OpenAPI (Swagger) UI

The OpenAPI UI is available on http://localhost/openapi

OpenAPI UI

NPM Scripts

  • dev: Start development mode (load all services locally)
  • start: Start production mode (don't load any services, use SERVICES env variable)
  • build:frontend: Build frontend code
  • lint: Run ESLint
  • lint:fix: Run ESLint with fixes
  • deps: Check & update NPM dependencies
  • ci: Run continuous backend test mode
  • ci:e2e: Run continuous E2E test mode
  • test: Run all tests (backend, frontend, E2E)
  • test:backend: Run backend tests
  • test:e2e: Run E2E tests
  • dc:up: Start the stack in production with Docker Compose
  • dc:down: Stop the stack in production with Docker Compose

Contact

Copyright (C) 2021 Icebob

@icebob @icebob