Ruby on Rails

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.

Terminal
$ bundle add escalated

Por 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

1

Instale a gem

bundle add escalated
2

Execute o gerador

rails generate escalated:install && rails db:migrate
3

Monte 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.

Ruby
# 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.