Home
Softono
kantab

kantab

Open source JavaScript
143
Stars
34
Forks
5
Issues
16
Watchers
3 years
Last Commit

About kantab

KanTab is a kanban board application built with a microservices architecture. It uses Moleculer for the backend and Vue.js for the frontend, with MongoDB as the data store. The application includes full authentication features such as login, sign up, passwordless accounts, forgot and reset password, account verification, social login with Google, Facebook, and GitHub, and two-factor authentication. Access control is managed through ACL and RBAC with user roles and permissions. Key features include a global REST API, Swagger API documentation, a GraphQL endpoint, websocket support, internationalization, metrics and monitoring with Prometheus and Grafana, and centralized configuration. The frontend is built with VueX and Vue Router, and the project includes Docker files for containerized deployment. Testing is supported with Jest for backend unit tests and Cypress for end-to-end testing. KanTab is designed for teams and individuals who want a self-hosted, flexible task management solution with a modern tech sta

Platforms

Web Self-hosted

Languages

JavaScript

Links

Moleculer CI test Coverage Status

KanTab

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

Screenshot

Tech stack

Desired features & modules:

  • [x] Node v14.x with async/await
  • [x] Moleculer microservices backend
  • [x] VueJS frontend (VueX, Vue-router)
  • [ ] TailwindCSS design
  • [x] MongoDB
  • [x] Central configuration
  • [x] Global REST API
  • [x] Swagger API docs
  • [x] GraphQL endpoint
  • [x] Full authentication
    • [x] Login
    • [x] Sign Up
    • [x] Passwordless account
    • [x] Forgot password
    • [x] Reset password
    • [x] Account verification
    • [x] Social login
      • [x] Google
      • [x] Facebook
      • [x] Github
    • [x] Two-factor authentication
    • [ ] LDAP
  • [x] ACL/RBAC (user roles & permissions)
  • [x] I18N
  • [x] Websocket
  • [ ] Plugin system
  • [ ] Caching with tags
  • [x] Metrics & monitoring
  • [x] Unit test with Jest, Cypress
  • [x] Unit test with Cypress
  • [x] 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