{"id":13553548,"url":"https://github.com/icebob/kantab","last_synced_at":"2026-03-10T11:03:39.119Z","repository":{"id":34812356,"uuid":"144414759","full_name":"icebob/kantab","owner":"icebob","description":"[WIP] Kanban board application. Powered by Moleculer \u0026 Vue.JS","archived":false,"fork":false,"pushed_at":"2022-09-04T16:19:28.000Z","size":17723,"stargazers_count":142,"open_issues_count":5,"forks_count":34,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-08T08:12:29.151Z","etag":null,"topics":["example-app","kanban","kanban-board-application","moleculer"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icebob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-11T20:01:18.000Z","updated_at":"2025-03-25T04:00:10.000Z","dependencies_parsed_at":"2022-08-08T02:00:58.873Z","dependency_job_id":null,"html_url":"https://github.com/icebob/kantab","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/icebob/kantab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebob%2Fkantab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebob%2Fkantab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebob%2Fkantab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebob%2Fkantab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icebob","download_url":"https://codeload.github.com/icebob/kantab/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebob%2Fkantab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271455663,"owners_count":24762771,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example-app","kanban","kanban-board-application","moleculer"],"created_at":"2024-08-01T12:02:27.902Z","updated_at":"2026-03-10T11:03:39.033Z","avatar_url":"https://github.com/icebob.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Examples","others"],"sub_categories":["Repositories"],"readme":"[![Moleculer](https://badgen.net/badge/Powered%20by/Moleculer/0e83cd)](https://moleculer.services)\n[![CI test](https://github.com/icebob/kantab/actions/workflows/ci.yml/badge.svg)](https://github.com/icebob/kantab/actions/workflows/ci.yml)\n[![Coverage Status](https://badgen.net/coveralls/c/github/icebob/kantab/master)](https://coveralls.io/github/icebob/kantab?branch=master)\n\n# KanTab\nKanTab is a kanban board application with microservices. Powered by Moleculer \u0026amp; Vue.\n\n![Screenshot](https://user-images.githubusercontent.com/306521/47039154-865d9100-d183-11e8-85c9-4cfc571ac8a5.png)\n\n\u003c!-- ## Demo\nLive demo on now.sh: https://kantab.now.sh/ --\u003e\n\n## Tech stack\nDesired features \u0026 modules:\n\n- [x] Node v14.x with async/await\n- [x] Moleculer microservices backend\n- [x] VueJS frontend (VueX, Vue-router)\n- [ ] TailwindCSS design\n- [x] MongoDB\n- [x] Central configuration\n- [x] Global REST API\n- [x] Swagger API docs\n- [x] GraphQL endpoint\n- [x] Full authentication\n    - [x] Login\n    - [x] Sign Up\n    - [x] Passwordless account\n    - [x] Forgot password\n    - [x] Reset password    \n    - [x] Account verification\n    - [x] Social login\n        - [x] Google\n        - [x] Facebook\n        - [x] Github\n    - [x] Two-factor authentication\n    - [ ] LDAP\n- [x] ACL/RBAC (user roles \u0026 permissions)\n- [x] I18N\n- [x] Websocket\n- [ ] Plugin system\n- [ ] Caching with tags\n- [x] Metrics \u0026 monitoring\n- [x] Unit test with Jest, Cypress\n- [x] Unit test with Cypress\n- [x] Docker files\n- [ ] Docker Compose file generator middleware\n- [ ] Prometheus file generator middleware\n- [ ] Kubernetes \u0026 Helm chart files\n- [ ] Kubernetes file generator middleware\n\n## Monitoring\nIn production, this project contains monitoring feature with [Prometheus](https://prometheus.io/) \u0026 [Grafana](https://grafana.com/).\n\n[Read more about it](monitoring/README.md)\n\n## Usage\n\n### Build frontend\nThe 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.\n\n```bash\ncd frontend\nnpm i\nnpm run build\n```\n\n### Start backend\nTo run the backend you need a running MongoDB server on localhost. Or set the remote MongoDB uri to the `MONGO_URI` environment variable.\n```bash\nnpm run dev\n```\n\nThe application is available on http://localhost:4000\n\n### GraphQL Playground\nThe GraphQL playground is available on http://localhost/graphql\n\n![GraphQL Playground](https://user-images.githubusercontent.com/306521/112732784-5150ed80-8f3c-11eb-86a1-88bef067e723.png)\n\n\n### OpenAPI (Swagger) UI\nThe OpenAPI UI is available on http://localhost/openapi\n\n![OpenAPI UI](https://user-images.githubusercontent.com/306521/112732801-66c61780-8f3c-11eb-9c69-0c7985b4ba12.png)\n\n## NPM Scripts\n\n- `dev`: Start development mode (load all services locally)\n- `start`: Start production mode (don't load any services, use `SERVICES` env variable)\n- `build:frontend`: Build frontend code\n- `lint`: Run ESLint\n- `lint:fix`: Run ESLint with fixes\n- `deps`: Check \u0026 update NPM dependencies\n- `ci`: Run continuous backend test mode\n- `ci:e2e`: Run continuous E2E test mode \n- `test`: Run all tests (backend, frontend, E2E)\n- `test:backend`: Run backend tests\n- `test:e2e`: Run E2E tests\n- `dc:up`: Start the stack in production with Docker Compose\n- `dc:down`: Stop the stack in production with Docker Compose\n\n\n## Contact\n\nCopyright (C) 2021 Icebob\n\n[![@icebob](https://img.shields.io/badge/github-icebob-green.svg)](https://github.com/icebob) [![@icebob](https://img.shields.io/badge/twitter-Icebobcsi-blue.svg)](https://twitter.com/Icebobcsi)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficebob%2Fkantab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficebob%2Fkantab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficebob%2Fkantab/lists"}