Um sistema de suporte que roda nas convencoes do Rails
Modelos ActiveRecord, geradores, montagem de engine e os padroes Ruby familiares que sua equipe ja conhece. Escalated e uma engine Rails distribuida como uma gem.
$ bundle add escalatedPor que Escalated
Por que Escalated para Rails
Modelos ActiveRecord
Tickets, respostas, tags e atividades sao modelos ActiveRecord. Use scopes, associacoes e validacoes como qualquer modelo na sua aplicacao.
Geradores Rails
Gere migrations, instale arquivos de configuracao e crie scaffolding de views com comandos familiares de `rails generate`. Sem configuracao manual necessaria.
Arquitetura de engine
Monta como uma engine Rails no seu `config/routes.rb`. Isola rotas, controllers e views do Escalated enquanto compartilha seu stack de autenticacao.
Primeiros passos
Como funciona
Instale a gem
bundle add escalatedExecute o gerador
rails generate escalated:install && rails db:migrateMonte a engine
Adicione `mount Escalated::Engine => '/support'` as suas rotas e esta pronto.
Recursos
Feito para o ecossistema Rails
Associacoes ActiveRecord
Tickets pertencem a usuarios, tem muitas respostas e se conectam por associacoes polimorficas. Consulte-os com Arel ou scopes.
Integracao com ActiveJob
Notificacoes por e-mail e despacho de webhooks rodam no ActiveJob. Use Sidekiq, Resque ou qualquer backend que sua aplicacao ja use.
Suporte a Pundit e CanCanCan
Autorizacao funciona com bibliotecas padrao de autorizacao Ruby. Controle o acesso a tickets, respostas e funcoes de administracao.
Callbacks do ActiveSupport
Cada acao de ticket aciona callbacks. Conecte-se a after_create, after_update e eventos de ciclo de vida personalizados para construir workflows.
Middleware Rack
Aplique seu middleware Rack existente as rotas do Escalated. Autenticacao, rate limiting e escopo de tenant funcionam naturalmente.
Factories do FactoryBot
Inclui factories do FactoryBot para tickets, respostas e usuarios. Escreva testes RSpec ou Minitest com padroes familiares.
Veja em acao
Poucas linhas de Ruby para adicionar um sistema completo de suporte a sua aplicacao.
# config/routes.rb Rails.application.routes.draw do mount Escalated::Engine => '/support' end # app/models/user.rb class User < ApplicationRecord include Escalated::HasTickets end # Anywhere in your application ticket = user.tickets.create!( subject: 'Need help with billing', priority: :high ) ticket.replies.create!( body: "We've updated your invoice.", user: agent )
Pronto para adicionar tickets de suporte a sua aplicacao Rails?
Escalated e open source, auto-hospedado e projetado para parecer uma parte nativa da sua aplicacao Rails.