{"id":31675046,"url":"https://github.com/slamint/slamint-monorepo","last_synced_at":"2025-10-08T04:59:29.109Z","repository":{"id":315240730,"uuid":"1056996062","full_name":"slamint/slamint-monorepo","owner":"slamint","description":"A community-driven alternative to costly service desk platforms. SLA Mint helps organizations manage IT support, track SLAs, and deliver faster resolutions — all in a transparent, open-source way.","archived":false,"fork":false,"pushed_at":"2025-10-03T06:54:02.000Z","size":423,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-03T08:37:26.691Z","etag":null,"topics":["docker","idp","keycloak","monorepo","nestjs","nx","oidc","postgresql","react","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slamint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-15T06:22:14.000Z","updated_at":"2025-10-03T06:54:05.000Z","dependencies_parsed_at":"2025-10-03T08:24:31.761Z","dependency_job_id":"97dc4db7-9a43-4616-bcfe-ce6604d8481b","html_url":"https://github.com/slamint/slamint-monorepo","commit_stats":null,"previous_names":["slamint/slamint-monorepo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/slamint/slamint-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slamint%2Fslamint-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slamint%2Fslamint-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slamint%2Fslamint-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slamint%2Fslamint-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slamint","download_url":"https://codeload.github.com/slamint/slamint-monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slamint%2Fslamint-monorepo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278891742,"owners_count":26063856,"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-10-08T02:00:06.501Z","response_time":56,"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":["docker","idp","keycloak","monorepo","nestjs","nx","oidc","postgresql","react","vite"],"created_at":"2025-10-08T04:59:27.857Z","updated_at":"2025-10-08T04:59:29.089Z","avatar_url":"https://github.com/slamint.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎟️ SLA Mint – Open Source Ticketing \u0026 Helpdesk Tool\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg width=\"500\" height=\"500\" alt=\"image\" src=\"https://github.com/user-attachments/assets/3155df35-30c3-4d41-9b5f-714d623fa2b5\" /\u003e\n\u003c/div\u003e\n\n\u003e **A community-driven alternative to costly service desk platforms.**  \n\u003e SLA Mint helps organizations manage IT support, track SLAs, and deliver faster resolutions — all in a transparent, open-source way.\n\n---\n\n## 📌 1. Overview\n\nSLA Mint is an **open-source IT ticketing and helpdesk solution**.  \nIt empowers **businesses, startups, and communities** to centralize support operations, enforce SLAs (Service Level Agreements), and provide measurable service quality without being locked into expensive proprietary tools.\n\n✨ **Key Value**: Streamlined operations, SLA compliance, better insights, and reduced costs.\n\n---\n\n|                                                                                                                                                                                                                                                                                                                                                                                                              [![SonarQube Cloud](https://sonarcloud.io/images/project_badges/sonarcloud-light.svg)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo)                                                                                                                                                                                                                                                                                                                                                                                                              |\n| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=slamint_slamint-monorepo\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=slamint_slamint-monorepo\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=slamint_slamint-monorepo\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=slamint_slamint-monorepo\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=slamint_slamint-monorepo\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) |\n\n## 🛑 2. Business Problems\n\n- ❌ **Fragmented Support** – Emails, chats, and spreadsheets lead to lost requests.\n- ⏳ **SLA Breaches** – No visibility into deadlines or commitments.\n- 💸 **High Licensing Costs** – Commercial service desk tools are often unaffordable.\n- 📉 **Poor Insights** – Lack of analytics = no improvement path.\n- 🔒 **Vendor Lock-in** – Existing tools restrict customization and flexibility.\n\n---\n\n## 💡 3. Our Solution\n\nSLA Mint provides a **flexible, cost-effective** way to manage support:\n\n- 🗂️ **Centralized Ticketing** – All support requests in one place.\n- 📊 **SLA Management** – Define response \u0026 resolution timeframes.\n- 👥 **Role-based Access Control** – Admin, Agent, Manager, End-user.\n- 📩 **Multi-channel Support** – Web, email, and API-based ticket creation.\n- 📈 **Analytics \u0026 Dashboards** – Monitor SLA breaches, workloads, and trends.\n- 🛠️ **Open-source Flexibility** – Self-host, extend, and integrate freely.\n\n---\n\n## 🚀 4. Features\n\n### 🔑 Core Features\n\n- Ticket creation, assignment \u0026 tracking\n- SLA definition \u0026 monitoring\n- Priority, category \u0026 status management\n- Role-based permissions\n- Audit logs \u0026 history\n\n### ⚡ Advanced Features\n\n- Email-to-ticket conversion\n- SLA escalations \u0026 notifications\n- Performance dashboard \u0026 analytics\n- Multi-tenant support (for MSPs \u0026 large orgs)\n- REST API for integrations\n\n### 🌐 Future Features\n\n- Omnichannel (chat, WhatsApp, Teams, Slack)\n- AI ticket routing \u0026 sentiment analysis\n- Knowledge base \u0026 self-service portal\n- Workflow automation (approvals, escalations)\n- Mobile app for agents on-the-go\n\n---\n\n## 📊 5. Business Impact\n\n- ✅ **Faster Resolutions** → Improved SLA compliance\n- ✅ **Lower Costs** → No proprietary licensing\n- ✅ **Increased Accountability** → Clear roles \u0026 ownership\n- ✅ **Data-driven Decisions** → Performance reports \u0026 KPIs\n- ✅ **Community-driven Growth** → Contributions \u0026 integrations\n\n---\n\n## 📈 6. KPIs\n\n| 📍 KPI                           | 📖 Definition                    | 💼 Business Value       |\n| -------------------------------- | -------------------------------- | ----------------------- |\n| **SLA Compliance Rate**          | % of tickets resolved within SLA | Measures reliability    |\n| **Avg. Response Time**           | Time to first response           | Indicates efficiency    |\n| **Avg. Resolution Time**         | Time to resolve ticket           | Measures effectiveness  |\n| **Ticket Volume**                | # of new tickets                 | Shows workload \u0026 demand |\n| **CSAT (Customer Satisfaction)** | Post-resolution survey score     | Reflects quality        |\n| **Escalation Rate**              | % of tickets escalated           | Identifies process gaps |\n\n---\n\n## 🛣️ 7. Roadmap\n\n\u003cdetails\u003e\n\u003csummary\u003e📍 Phase 1 – Foundation (✅ In Progress)\u003c/summary\u003e\n\n- Ticket management\n- SLA enforcement\n- Basic roles \u0026 permissions\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🚀 Phase 2 – Growth\u003c/summary\u003e\n\n- Email integration\n- SLA notifications\n- Analytics dashboard\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🌐 Phase 3 – Advanced\u003c/summary\u003e\n\n- Omnichannel support (chat, API, mobile)\n- Knowledge base\n- AI/ML ticket routing\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e💡 Phase 4 – Community\u003c/summary\u003e\n\n- Plugin/extension marketplace\n- Enterprise adoption\n- Cloud + On-prem hybrid deployment\n\u003c/details\u003e\n\n---\n\n## 👥 8. Business Roles \u0026 Responsibilities\n\nSLA Mint is designed to serve multiple **business personas**. Each role has distinct responsibilities and value from the system.\n\n### 🧑‍💼 End Users (Employees / Customers)\n\n- Create support tickets (IT, HR, Facilities, etc.)\n- Track progress \u0026 resolution status\n- Provide feedback \u0026 satisfaction ratings (CSAT)\n\n### 🎧 Support Agents\n\n- Respond to incoming tickets within SLA\n- Update ticket status, progress notes \u0026 resolutions\n- Escalate issues when needed\n- Ensure timely closure of tickets\n\n### 👩‍💻 Team Leads / Managers\n\n- Monitor team performance \u0026 SLA compliance\n- Reassign or balance workloads among agents\n- Approve escalations or exceptions\n- Generate reports for higher management\n\n### 🛠️ Admins / IT Service Desk Owners\n\n- Configure SLAs, categories, priorities\n- Manage roles, permissions, and workflows\n- Ensure system uptime \u0026 integration with other tools\n- Maintain audit logs \u0026 compliance requirements\n\n### 🏢 Business Leadership / Department Heads\n\n- Review KPI dashboards for service quality\n- Identify bottlenecks and areas of improvement\n- Allocate budget/resources based on workload data\n- Drive continuous improvement initiatives\n\n---\n\n## 📋 9. Business RACI Matrix\n\n| Activity / Task                        | End User | Agent | Manager | Admin/IT | Leadership |\n| -------------------------------------- | -------- | ----- | ------- | -------- | ---------- |\n| **Ticket Creation**                    | R        | C     | I       | I        | I          |\n| **Ticket Response \u0026 Resolution**       | C        | R     | A       | I        | I          |\n| **Escalation Handling**                | I        | R     | A       | C        | I          |\n| **SLA Monitoring**                     | I        | R     | A       | C        | I          |\n| **System Configuration (SLAs, Roles)** | I        | I     | C       | R/A      | I          |\n| **Workload Management \u0026 Reassignment** | I        | C     | R/A     | I        | I          |\n| **Reporting \u0026 Analytics**              | I        | C     | R       | C        | A          |\n| **Compliance \u0026 Audit**                 | I        | I     | C       | R        | A          |\n| **Customer Satisfaction Feedback**     | R        | C     | I       | I        | I          |\n| **Strategic Improvements / Budgets**   | I        | I     | C       | C        | R/A        |\n\n👉 Legend:\n\n- **R** = Responsible (does the work)\n- **A** = Accountable (final ownership)\n- **C** = Consulted (provides input)\n- **I** = Informed (kept updated)\n\n---\n\n## 🐳 10. Containerized Backends\n\n| Service | Dockerfile | Default Port |\n| ------- | ---------- | ------------ |\n| API Gateway (`@slamint/api-gateway`) | `api/api-gateway/Dockerfile` | `8081` |\n| Account Management (`@slamint/account-management`) | `api/account-management/Dockerfile` | `8082` |\n\n### Build images manually\n\n```bash\ndocker build -t slamint-account-management -f api/account-management/Dockerfile .\ndocker build -t slamint-api-gateway -f api/api-gateway/Dockerfile .\n```\n\n### Run with Docker Compose\n\n1. (Recommended) Copy `.env.example` to `.env` and override any secrets; if you skip this step the compose file falls back to safe-but-obvious defaults such as `REDIS_PASSWORD=changeme`.\n2. Start the dependency stack and backends:\n\n   ```bash\n   docker compose up -d account-management\n   docker compose up -d api-gateway\n   ```\n\n   Compose will build the images if they are missing and wire them to Postgres, Redis, and Keycloak.\n3. Inspect logs when needed:\n\n   ```bash\n   docker compose logs -f account-management\n   docker compose logs -f api-gateway\n   ```\n\nEach container is self-contained: the build stage compiles the NestJS projects with Nx and prunes dependencies so the runtime layers only contain production packages (including resources bundled under `common/`). Use the `NODE_VERSION` build-arg to pin a different Node.js base if required, e.g. `--build-arg NODE_VERSION=22-slim`.\n\n### CI publishing flow\n\n- The base semantic version lives in `release.env` (e.g. `VERSION=1.0.0`). Local or CI builds append a build number to produce tags like `1.0.0.42`.\n- `pnpm nx run @slamint/account-management:docker-release` and `pnpm nx run @slamint/api-gateway:docker-release` build/push their respective images to `${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_NAMESPACE:-slamint}/\u003cservice\u003e:${VERSION}.${BUILD_NUMBER}`, and re-tag the same image as `${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_NAMESPACE:-slamint}/\u003cservice\u003e:latest`.\n- The workflow in `.github/workflows/docker-release.yml` loads `release.env`, sets `BUILD_NUMBER` to `GITHUB_RUN_NUMBER`, authenticates to GHCR with the built-in `${{ github.token }}`, then executes `pnpm docker:release` so both services are rebuilt and pushed on every run.\n- Locally, export a `BUILD_NUMBER` (for example `BUILD_NUMBER=42 pnpm docker:release`) to mirror the CI tag; if omitted the helper script falls back to `1.0.0.local`.\n- Override `DOCKER_NAMESPACE` and `DOCKER_REGISTRY` via environment variables or repository secrets if you publish outside GHCR, and set `INCLUDE_LATEST=false` if you ever need to skip the automatic `latest` tag.\n\n---\n\n## 🔮 11. Future Plans\n\n- 🤖 **AI-driven triage** – Auto-prioritize \u0026 route tickets.\n- 🏢 **Enterprise readiness** – RBAC, compliance, advanced audit logs.\n- ☁️ **Hybrid deployments** – Cloud + On-prem.\n- 🔌 **Marketplace** – Plugins \u0026 integrations (Slack, Jira, Teams).\n- 📱 **Mobile apps** – Agent productivity on-the-go.\n\n---\n\n## 🤝 12. Community \u0026 Contribution\n\n- **License**: MIT – free to use, modify, and distribute.\n- **Contributions**: PRs, issues, and discussions welcome.\n- **Community Calls**: Planned for roadmap discussions.\n- **Governance**: Open and transparent, with community voting on features.\n\n---\n\n## ✅ 13. Conclusion\n\nSLA Mint is more than a tool — it’s a **movement towards open, affordable, and effective service management**.\n\nIt empowers organizations to:\n\n- Manage support tickets effectively\n- Enforce SLAs with confidence\n- Gain insights through KPIs \u0026 analytics\n- Avoid vendor lock-in and high licensing costs\n\n\u003e **SLA Mint = Transparency + Efficiency + Community**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslamint%2Fslamint-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslamint%2Fslamint-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslamint%2Fslamint-monorepo/lists"}