Pré-lançamento
Sistemas Web com Spring, JavaScript e Bootstrap

Eu quero aprender Spring!

Reserva de Vaga no Pré-Lançamento

Atenção: esse é um pré-lançamento do curso de Spring. Se tiver qualquer dúvida sobre o conteúdo do curso e cronograma de entrega das aulas, assista ao vídeo completo ou entre em contato com a gente.

PagSeguro

Apenas 100 vagas (vai acabar muito rápido...)

Garantia Incondicional de 60 dias

Se você comprar o curso e por qualquer motivo quiser o seu dinheiro de volta, é só enviar um e-mail para contato@algaworks.com, dentro do prazo de 60 dias após a compra!

Nós vamos estornar seu pagamento integralmente, sem cobrança de taxas, multas… absolutamente nada! Não vamos fazer nenhuma pergunta antes de devolver seu dinheiro, e o mais importante, não ficaremos magoados com você.

Quais os Benefícios de Estudar com a AlgaWorks?

  • Acesso para sempre

    Seu acesso ao curso online será vitalício, ou seja, nunca vai expirar.

  • Aprenda no seu ritmo

    Estude a qualquer hora e assista as videoaulas quantas vezes precisar.

  • Certificado de conclusão

    Ao concluir o curso, você vai receber um certificado de conclusão em PDF. O certificado possui o selo da ABED (Associação Brasileira de Educação a Distância).

  • Suporte de especialistas

    Você vai receber 4 meses de suporte para tirar todas as dúvidas que tiver durante as aulas.

Conheça a Programação das Aulas

* As aulas serão entregues semanalmente de 13/06 até 25/07/2016.
** A ementa pode ser modificada durante a gravação das aulas, para melhor organização do conteúdo do curso.

1. Introdução
Introdução ao curso
Conhecendo o projeto do curso
Como usar o suporte
Introdução ao protocolo HTTP
Introdução ao Maven
Instalando e configurando o Eclipse
Instalando o Apache Tomcat
Iniciando o Apache Tomcat dentro do Eclipse
Instalando e configurando o MySQL
Baixando os exemplos do GitHub e importando no Eclipse

2. Introdução ao Spring
O que é Spring?
Spring vs Java EE
O padrão MVC
O Framework Action Based
Action Based vs Component Based (Spring MVC vs JSF)
Ciclo de vida do Spring MVC

3. Spring MVC, Thymeleaf e Bean Validation
Como ler a documentação do Spring
Criando seu primeiro projeto Spring MVC
Conhecendo o Thymeleaf
Configurando a ViewResolver com Thymeleaf
Existe uma ordem que devo seguir? M, V e depois C?
Começando o cadastro de cerveja
O Controller
A View
O Model
Forward vs Redirect
Introdução a validação do formulário
Desafio: Validando a descrição

4. O Thymeleaf
O que é uma template engine?
Thymeleaf vs JSP
Thymeleaf Standard Expression syntax
Expression objects
Thymeleaf e Spring
Framework extensível
Plugin do Eclipse para Thymeleaf
Outros frameworks

5. Layout responsivo com Bootstrap e HTML5
Conhecendo os layouts do Bootstrap
Escolhendo um layout responsivo
Baixando e configurando o layout no projeto
Prototipando o cadastro da cerveja
Melhorando a organização com o Layout Dialect
Configurando máscara de dinheiro com jQuery
Prototipando o cadastro rápido de estilo
Prototipando o cadastro do cliente
Prototipando a tela de login
Desafio: prototipando o cadastro de usuário
Desafio: prototipando o cadastro de cidade
Desafio: prototipando o cadastro de estilo

6. Internacionalização
Introdução
O header "Accept-Language"
Configurando a internacionalização
Integrando com o Thymeleaf
Como testar diferentes idiomas?
Internacionalizando as mensagens de validação
Desafio: internacionalizando o projeto

7. Logging de mensagens
Introdução
Configurando o SLF4J com Log4j 2
Configurando os níveis de logs

8. Injeção de dependência com Spring IoC
Introdução
Aprendendo sobre o contexto do Spring
Regras de nomeação dos beans
Injeção de dependência
Pontos de injeção de dependência
O @Autowired
Escopo dos beans

9. JPA, Hibernate e Flyway
Introdução
Visão geral do JPQL
Visão geral do Hibernate Criteria
Mapeamento das entidades do projeto
Migrando o banco de dados com Flyway

10. Spring Data JPA e Padrão Repository
Introdução
Configurando o projeto
O JPA Repository
Criando queries sem escrevê-la
Repository vs DAO

11. Validação customizada e conversores
Validação customizada do SKU com Bean Validation
Convertendo valores numéricos
Convertendo datas do Java 8

12. Tratando exceções, callbacks JPA e Ajax
Adicionando valores na tela
Adicionando o combo do estilo - many-to-one
Salvando o estilo com Ajax: diálogo de cadastro rápido
Tratando exceções com ExceptionHandler
Mantendo selecionado o novo estilo - cadastro rápido
Callbacks JPA - Salvando SKU com caixa alta
Resolvendo o problema de acentuação
Desafio: Implementando o cadastro de estilos

13. Modularizando o JavaScript
Introdução
O Module Pattern
Melhorando o código da máscara de dinheiro
Eventos e binds para o diálogo de cadastro do estilo

14. Estendendo o Thymeleaf
Criando o dialeto Brewer
Processadores do Thymeleaf
Componente para mensagens
Componente para formgroup
Componente para formatação numérica

15. Transação, datasource e pool de conexões
Introdução ao datasource
O que é pool de conexões?
Conhecendo o c3p0
Configurando o Tomcat com o datasource e pool
Entendendo a transação no projeto
É possível usar OpenSessionInView?

16. Upload, redimensionamento da foto e retorno assíncrono
Conhecendo o UIKit
Prototipando o upload da foto com drag and drop
Upload da foto com Ajax
Aplicando migração da foto na cerveja
Implementando um storage local
Salvando a imagem temporária
Redimensionando a imagem - salvando o thumbnail
Melhorando a disponibilidade da aplicação - retorno assíncrono

17. Pesquisa, paginação e ordenação
Prototipando a pesquisa da cerveja
Implementando a pesquisa
Filtrando e resolvendo o problema do n+1
Paginação eficiente
Implementando paginação na pesquisa de cervejas
Implementando botões next e previous
Criando utilitário para paginação
Ordenação dinâmica
Ordenando a pesquisa por SKU ou nome
Desafio: Pesquisa de estilos
Desafio: Componente Thymeleaf para incluir paginação

18. Cadastro com máscaras e combo dependente
Configurando máscara de telefone com jQuery
Configurando máscara de CPF/CNPJ com jQuery
Aplicando migração de estado e cidade
Conhecendo o Handlebars
Selecionado cidades pelo estado com Ajax
Salvando CPF/CNPJ sem formatação
Desafio: Configurando máscara de CEP com jQuery
Desafio: Implementando a pesquisa de clientes

19. Otimizando a performance com cache
Cacheando a busca de cidades por estado
Invalidando o cache por tempo
Cadastrando uma nova cidade
Invalidando o cache no cadastro da cidade
Cache profissional com Guava Cache do Google

20. Cadastro com relacionamento ManyToMany
Planejando o modelo de permissões e grupos
Criando migração de usuários
Prototipando o cadastro do usuário
Componente calendário
Componente Switch - Ativo/Inativo
Validador customizado para confirmação de senha
Salvando a senha criptografada com BCrypt

21. Segurança com Spring Security
Introdução à autenticação e autorização
Configurando o Spring Security no projeto
Ignorando a validação nos recursos estáticos
Autenticando usuário e senha
Carregando as permissões dos grupos do usuário
Customizando a tela de login
Adicionando o logout
Adicionando tela de acesso negado
Problema de acentuação voltou?
Entendendo o CSRF
Configurando o CSRF no JavaScript
Exibindo o usuário logado
Restringindo o acesso às páginas
Escondendo componentes de usuários sem permissão

22. Páginas de erros customizadas
Criando página 403 - Acesso negado
Criando página 404 - Não encontrado
Criando página 500 - Erro no servidor

23. Pesquisa com filtros avançados e multi-seleção de linhas
Protótipo da pesquisa de usuários
Trabalhando no filtro por grupo
Multi-seleção de linhas - ativando/desativando vários usuários
Desafio: Paginação da pesquisa de usuários

24. Diálogo e autocomplete
Prototipando cadastro de nova venda
Prototipando pesquisa rápida de clientes (modal)
Implementando pesquisa rápida de clientes
Conhecendo o componente EasyAutocomplete
Renderizando cervejas no autocomplete
Prototipando itens adicionados na venda

25. Página mestre-detalhe, escopo de sessão e testes unitários
Como funciona o escopo de sessão?
Mantendo os itens da venda no servidor
Introdução aos testes unitários
Testando a tabela de itens
Renderizando HTML retornado do Ajax
Implementando atualização da quantidade de itens
Prototipando remoção de itens da venda
Removendo itens da venda
Atualizando valor total
Criando validador customizado do Spring
Salvando no banco de dados
Salvando e emitindo
Desafio: Implementando a pesquisa das vendas

26. Envio de e-mails e chamadas assíncronas
Configuração do servidor de e-mail
Configuração de chamadas assíncronas
Salvando e enviando por e-mail

27. Implementando edição e exclusão
Implementando a edição de usuário
Implementando a edição de cliente
Implementando a edição de cerveja
Implementando a edição da venda
Implementando a exclusão de cerveja
Implementando o cancelamento da venda
Desafio: Implementando a edição de estilo
Desafio: Implementando a exclusão de usuário
Desafio: Implementando a exclusão de cliente
Desafio: Implementando a exclusão de estilo

28. Dashboard - consultas avançadas e gráficos
Prototipando o dashboard
Box de vendas no ano, vendas no mês e ticket médio
Conhecendo o Chartjs
Consultas em arquivos externos
Gráfico - Vendas por mês
Desafio: Box total de clientes
Desafio: Box valor total
Desafio: Box quantidade de itens no estoque
Desafio: Gráfico - Vendas por nacionalidade

29. Deploy em produção na nuvem
Escolhendo o fornecedor
Criando uma instância do MySQL
Configuração externa para ambiente de produção
Próximos passos
Conclusão

Veja os Workshops Que Você Vai Ganhar de Bônus

* As aulas dos workshops de bônus serão 100% entregues até 30/05/2016.

Explorando a Linguagem JavaScript

Se você só sabe copiar/colar código JavaScript, mas não entende muito bem o que está fazendo, esse workshop vai te preparar para criar os seus próprios códigos de front-end do jeito certo. Você vai aprender diversos conceitos importantes da linguagem.

Web Design Responsivo com HTML, CSS e Bootstrap

Você vai aprender a criar páginas em HTML5, CSS3 e Bootstrap do zero. Se você ainda não sabe ou não é muito bom nessas tecnologias, esse workshop vai te preparar para fazer o curso de Spring.

COMPRAR AGORA >>

Reserva de Vaga no Pré-Lançamento

Atenção: esse é um pré-lançamento do curso de Spring. Se tiver qualquer dúvida sobre o conteúdo do curso e cronograma de entrega das aulas, assista ao vídeo completo ou entre em contato com a gente.

Apenas 100 vagas!

AlgaWorks Softwares, Treinamentos e Serviços Ltda
CNPJ: 10.687.566/0001-97
Telefone: (11) 2626-9415