
Introdução
Neste Screencast, dividido em 5 partes, nós vamos criar um sistema administrativo completo usando Rails Admin, neste exemplo vamos criar uma plataforma para que uma empresa possa gerenciar as vendas do seus representantes comerciais com dois tipos de usuário: gerente e vendedor. O vendedor poderá entrar com novas vendas, clientes e ver as suas comissões, o gerente poderá criar produtos, descontos e outros usuários.
Também vamos aprender a implementar uma série de features úteis e comuns à maioria dos APPs como autenticação usando Devise, autorização usando CanCanCan, filtro de registros baseado em quem é o dono deles, upload de fotos, customização da aparência e exportação de dados para PDF usando gráficos.
Este é o primeiro tutorial do OneBitCode dividido em vários episódios em vídeos para aumentar o detalhamento e simplificar a explicação, então se você gostar desse formato deixa um feedback ainda em baixo para eu saber e produzir mais conteúdo como este.
Episódios
-
- Criando a estrutura do nosso Projeto + Seed (Disponível)
- Autenticação + Autorização + Filtrando os resultados (Em breve)
- Incluindo fotos + Atribuição automática de comissão (Em breve)
- Configurando o Rails Admin + Customizando a aparência (Em breve)
- Exportando para PDF com gráficos + Testando tudo isto (Em breve)
O que vamos Aprender?
-
- Como criar um sistema administrativo
- Como implementar a autenticação
- Como implementar a autorização
- Como filtrar para que os vendedores vejam apenas seus próprios clientes, vendas e comissões
- Como receber fotos no nosso sistema administrativo
- Como customizar a aparência do nosso sistema administrativo
- Como exportar para PDF e gerar gráficos
Ingredientes
-
- Ruby on Rails
- Sqlite3 (Mas você pode usar outro Database :))
- Gem: Rails Admin
- Gem: Rails Admin Rollincode
- Gem: Devise
- Gem: CanCanCan
- Gem: Carrierwave
Lista de comandos utilizados no Screencast parte 1
-
- Criando os Models do sistema:
1rails g model User name:string document:string kind:integer status:integer notes:text
1rails g model Client name:string company_name:string document:string email:string phone:string user:references notes:text status:integer
1rails g model Address country:string city:string state:string neighborhood:string street:string number:string client:references user_id:integer
1rails g model Product name:string description:text status:integer
1rails g model Discount name:string description:text value:integer kind:integer status:integer
1rails g model ProductQuantity product:references quantity:integer user:references
1rails g model Sale client:references sale_date:date user:references discount:references notes:text
1rails g model Comission sale:references value:decimal user:references status:integer note:text
1rails db:migrate - Incluindo nossos Enuns e relacionamentos:
123456789class User < ApplicationRecordenum kind: [:salesman, :manager]enum status: [:active, :inactive]has_many :comissionshas_many :addresseshas_many :clientshas_many :product_quantitieshas_many :salesend
12345class Client < ApplicationRecordbelongs_to :userenum status: [:active, :inactive]has_one :addressend
123class Address < ApplicationRecordbelongs_to :clientend
1234class Product < ApplicationRecordenum status: [:active, :inactive]has_many :product_quantitiesend
123class Discount < ApplicationRecordenum status: [:active, :inactive]end
1234class ProductQuantity < ApplicationRecordbelongs_to :productbelongs_to :sale, optional: trueend
123456class Sale < ApplicationRecordbelongs_to :clientbelongs_to :userbelongs_to :discounthas_many :product_quantitiesend
1234class Comission < ApplicationRecordbelongs_to :salebelongs_to :userend - Instalando o Projeto:
1gem 'rails_admin'
1rails g rails_admin:install - Seed:
12345678910# Criando nossos Users --- OBS: Depois que adicionarmos o devise precisamos incluir o email e senha dos usersUser.create name: 'José', status: :active, kind: :salesmanUser.create name: 'Marcos', status: :active, kind: :manager# Criando alguns produtos de exemploProduct.create name: 'Smartphone', description:'Um smartphone novo ...', status: :activeProduct.create name: 'Tablet', description:'Um tablet novo ...', status: :active# Criando um desconto de exemploDiscount.create name: 'Desconto carnaval', description: 'Aplique esse desconto no carnaval', value: '10', kind: :porcent, status: :active
1rake db:seed
- Criando os Models do sistema:

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Conclusão – Parte 1
Nesta primeira parte nós criamos nosso modelo de dados e também instalamos o Rails Admin, apenas com esse passo você já é capaz de fazer o CRUD completo do seus dados, porém precisamos ainda implementar uma série de features para restringir o acesso, subir nossas imagens, exportar nossos dados para PDF e etc.
A parte 1 do projeto também está no Github para que você possa comparar os códigos acesse aqui!
Todos os outros 4 episódios da série sairão dentro dos próximos dias então não se esqueça de se cadastrar no canal do Youtube e habilitar as notificações.
Muito Obrigado por acompanhar este Blog!
Sua presença aqui é uma honra para mim,
Abraço,
Leonardo Scorza.
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!
Fique por dentro de todos os conteúdos o/
Nossas redes sociais:
📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
📱 • https://instagram.com/one_bit_code
🐦 • https://twitter.com/onebitcode
Nossos cursos:
🥇 • Programador Full Stack Javascript em 8 Semanas
💎 • https://onebitcode.com/dating-agencies-preston-lancashire/
⚙ • https://onebitcode.com/dating-sites-for-fat-people/
🐞 • best dating app los angeles
Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
Estamos aqui para você 🙂
Bem-vindo à família OneBitCode o/