https://github.com/slamint/slamint-monorepo
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.
https://github.com/slamint/slamint-monorepo
docker idp keycloak monorepo nestjs nx oidc postgresql react vite
Last synced: 9 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/slamint/slamint-monorepo
- Owner: slamint
- License: mit
- Created: 2025-09-15T06:22:14.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-03T06:54:02.000Z (9 months ago)
- Last Synced: 2025-10-03T08:37:26.691Z (9 months ago)
- Topics: docker, idp, keycloak, monorepo, nestjs, nx, oidc, postgresql, react, vite
- Language: TypeScript
- Homepage:
- Size: 413 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# ๐๏ธ SLA Mint โ Open Source Ticketing & Helpdesk Tool
> **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.
---
## ๐ 1. Overview
SLA Mint is an **open-source IT ticketing and helpdesk solution**.
It 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.
โจ **Key Value**: Streamlined operations, SLA compliance, better insights, and reduced costs.
---
| [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) |
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) [](https://sonarcloud.io/summary/new_code?id=slamint_slamint-monorepo) |
## ๐ 2. Business Problems
- โ **Fragmented Support** โ Emails, chats, and spreadsheets lead to lost requests.
- โณ **SLA Breaches** โ No visibility into deadlines or commitments.
- ๐ธ **High Licensing Costs** โ Commercial service desk tools are often unaffordable.
- ๐ **Poor Insights** โ Lack of analytics = no improvement path.
- ๐ **Vendor Lock-in** โ Existing tools restrict customization and flexibility.
---
## ๐ก 3. Our Solution
SLA Mint provides a **flexible, cost-effective** way to manage support:
- ๐๏ธ **Centralized Ticketing** โ All support requests in one place.
- ๐ **SLA Management** โ Define response & resolution timeframes.
- ๐ฅ **Role-based Access Control** โ Admin, Agent, Manager, End-user.
- ๐ฉ **Multi-channel Support** โ Web, email, and API-based ticket creation.
- ๐ **Analytics & Dashboards** โ Monitor SLA breaches, workloads, and trends.
- ๐ ๏ธ **Open-source Flexibility** โ Self-host, extend, and integrate freely.
---
## ๐ 4. Features
### ๐ Core Features
- Ticket creation, assignment & tracking
- SLA definition & monitoring
- Priority, category & status management
- Role-based permissions
- Audit logs & history
### โก Advanced Features
- Email-to-ticket conversion
- SLA escalations & notifications
- Performance dashboard & analytics
- Multi-tenant support (for MSPs & large orgs)
- REST API for integrations
### ๐ Future Features
- Omnichannel (chat, WhatsApp, Teams, Slack)
- AI ticket routing & sentiment analysis
- Knowledge base & self-service portal
- Workflow automation (approvals, escalations)
- Mobile app for agents on-the-go
---
## ๐ 5. Business Impact
- โ
**Faster Resolutions** โ Improved SLA compliance
- โ
**Lower Costs** โ No proprietary licensing
- โ
**Increased Accountability** โ Clear roles & ownership
- โ
**Data-driven Decisions** โ Performance reports & KPIs
- โ
**Community-driven Growth** โ Contributions & integrations
---
## ๐ 6. KPIs
| ๐ KPI | ๐ Definition | ๐ผ Business Value |
| -------------------------------- | -------------------------------- | ----------------------- |
| **SLA Compliance Rate** | % of tickets resolved within SLA | Measures reliability |
| **Avg. Response Time** | Time to first response | Indicates efficiency |
| **Avg. Resolution Time** | Time to resolve ticket | Measures effectiveness |
| **Ticket Volume** | # of new tickets | Shows workload & demand |
| **CSAT (Customer Satisfaction)** | Post-resolution survey score | Reflects quality |
| **Escalation Rate** | % of tickets escalated | Identifies process gaps |
---
## ๐ฃ๏ธ 7. Roadmap
๐ Phase 1 โ Foundation (โ
In Progress)
- Ticket management
- SLA enforcement
- Basic roles & permissions
๐ Phase 2 โ Growth
- Email integration
- SLA notifications
- Analytics dashboard
๐ Phase 3 โ Advanced
- Omnichannel support (chat, API, mobile)
- Knowledge base
- AI/ML ticket routing
๐ก Phase 4 โ Community
- Plugin/extension marketplace
- Enterprise adoption
- Cloud + On-prem hybrid deployment
---
## ๐ฅ 8. Business Roles & Responsibilities
SLA Mint is designed to serve multiple **business personas**. Each role has distinct responsibilities and value from the system.
### ๐งโ๐ผ End Users (Employees / Customers)
- Create support tickets (IT, HR, Facilities, etc.)
- Track progress & resolution status
- Provide feedback & satisfaction ratings (CSAT)
### ๐ง Support Agents
- Respond to incoming tickets within SLA
- Update ticket status, progress notes & resolutions
- Escalate issues when needed
- Ensure timely closure of tickets
### ๐ฉโ๐ป Team Leads / Managers
- Monitor team performance & SLA compliance
- Reassign or balance workloads among agents
- Approve escalations or exceptions
- Generate reports for higher management
### ๐ ๏ธ Admins / IT Service Desk Owners
- Configure SLAs, categories, priorities
- Manage roles, permissions, and workflows
- Ensure system uptime & integration with other tools
- Maintain audit logs & compliance requirements
### ๐ข Business Leadership / Department Heads
- Review KPI dashboards for service quality
- Identify bottlenecks and areas of improvement
- Allocate budget/resources based on workload data
- Drive continuous improvement initiatives
---
## ๐ 9. Business RACI Matrix
| Activity / Task | End User | Agent | Manager | Admin/IT | Leadership |
| -------------------------------------- | -------- | ----- | ------- | -------- | ---------- |
| **Ticket Creation** | R | C | I | I | I |
| **Ticket Response & Resolution** | C | R | A | I | I |
| **Escalation Handling** | I | R | A | C | I |
| **SLA Monitoring** | I | R | A | C | I |
| **System Configuration (SLAs, Roles)** | I | I | C | R/A | I |
| **Workload Management & Reassignment** | I | C | R/A | I | I |
| **Reporting & Analytics** | I | C | R | C | A |
| **Compliance & Audit** | I | I | C | R | A |
| **Customer Satisfaction Feedback** | R | C | I | I | I |
| **Strategic Improvements / Budgets** | I | I | C | C | R/A |
๐ Legend:
- **R** = Responsible (does the work)
- **A** = Accountable (final ownership)
- **C** = Consulted (provides input)
- **I** = Informed (kept updated)
---
## ๐ณ 10. Containerized Backends
| Service | Dockerfile | Default Port |
| ------- | ---------- | ------------ |
| API Gateway (`@slamint/api-gateway`) | `api/api-gateway/Dockerfile` | `8081` |
| Account Management (`@slamint/account-management`) | `api/account-management/Dockerfile` | `8082` |
### Build images manually
```bash
docker build -t slamint-account-management -f api/account-management/Dockerfile .
docker build -t slamint-api-gateway -f api/api-gateway/Dockerfile .
```
### Run with Docker Compose
1. (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`.
2. Start the dependency stack and backends:
```bash
docker compose up -d account-management
docker compose up -d api-gateway
```
Compose will build the images if they are missing and wire them to Postgres, Redis, and Keycloak.
3. Inspect logs when needed:
```bash
docker compose logs -f account-management
docker compose logs -f api-gateway
```
Each 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`.
### CI publishing flow
- 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`.
- `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}/:${VERSION}.${BUILD_NUMBER}`, and re-tag the same image as `${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_NAMESPACE:-slamint}/:latest`.
- 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.
- 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`.
- 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.
---
## ๐ฎ 11. Future Plans
- ๐ค **AI-driven triage** โ Auto-prioritize & route tickets.
- ๐ข **Enterprise readiness** โ RBAC, compliance, advanced audit logs.
- โ๏ธ **Hybrid deployments** โ Cloud + On-prem.
- ๐ **Marketplace** โ Plugins & integrations (Slack, Jira, Teams).
- ๐ฑ **Mobile apps** โ Agent productivity on-the-go.
---
## ๐ค 12. Community & Contribution
- **License**: MIT โ free to use, modify, and distribute.
- **Contributions**: PRs, issues, and discussions welcome.
- **Community Calls**: Planned for roadmap discussions.
- **Governance**: Open and transparent, with community voting on features.
---
## โ
13. Conclusion
SLA Mint is more than a tool โ itโs a **movement towards open, affordable, and effective service management**.
It empowers organizations to:
- Manage support tickets effectively
- Enforce SLAs with confidence
- Gain insights through KPIs & analytics
- Avoid vendor lock-in and high licensing costs
> **SLA Mint = Transparency + Efficiency + Community**