KanTab
KanTab is a kanban board application with microservices. Powered by Moleculer & Vue.
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
- 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.
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
OpenAPI (Swagger) UI
The OpenAPI UI is available on http://localhost/openapi
NPM Scripts
dev
: Start development mode (load all services locally)start
: Start production mode (don't load any services, useSERVICES
env variable)build:frontend
: Build frontend codelint
: Run ESLintlint:fix
: Run ESLint with fixesdeps
: Check & update NPM dependenciesci
: Run continuous backend test modeci:e2e
: Run continuous E2E test modetest
: Run all tests (backend, frontend, E2E)test:backend
: Run backend teststest:e2e
: Run E2E testsdc:up
: Start the stack in production with Docker Composedc:down
: Stop the stack in production with Docker Compose
Contact
Copyright (C) 2021 Icebob