FullStack MEAN – MongoDB, ExpressJS, AngularJS6 (Typescript) e NodeJS

Carga horária: 40hs

Objetivo: Preparar o profissional para criar aplicações Web utilizando MEAN Stack (MongoDB, Express JS, AngularJS, NodeJS) com uma formação FullStack.

Criação todas as camadas da  Arquitetura de software: backend baseado em serviços RESTful, persistência dos dados com o uso do banco de dados MongoDB veloz orientado a documentos, Orientação a objetos com Typescript e EcmaScript6, Javascript, HTML5 e interface responsiva com Bootstrap, Design Patterns (MVC, Singleton, DDD, etc), princípios de Programação Funcional, Programação Orientada a Eventos, Testes Unitários (Jasmine & Karma).

Utilização de GIT para controle e versionamento de código.

 

Projeto realizado no curso

Aplicação Fullstack de E-commerce para Listagem e Busca de Produtos, Carrinho de Compras, Login, Cadastro e Gerenciamento de usuários com persistência de imagens utilizando as tecnologias abaixo em um único projeto.

 

Próximas turmas

Frequência Horário Início Término Valor
Terça e Quinta 19:00/21:30h 18/09/2018 08/11/2018 9xR$200,00

AngularJS6

  • Diferenças da Arquitetura baseada em componentes (Webcomponents architecture) para arquitetura MVC (Model, View, Controller)
  • Visão geral do ECMASCRIPT 6 e novos padrões de projeto
  • Diferença do Angular1, 2, 3,4, 5 e 6
  • Classes
  • Princípios de orientação a objeto (OOP)
  • Modificadores de acesso: public, private, protected e default
  • Tipos de variáveis: Boolean, String, Number, any, Array, Object, Date
  • Typescript compiler: Geração de Javascript com Typescript
  • Package.json e Tsconfig.json
  • Clausura
  • Declaração de métodos e métodos autoinvocados
  • Analogia do Typescript com o JAVA
  • Loops: for, while, do while, continue, break;
  • Objetos Globais vs Locais
  • Diferenças entre declaração de variáveis e métodos: var, let, const, readonly, static, abstract
  • Sintaxe de Construtores
  • Construtores cheios e vazios (Sobrecarga)
  • Métodos públicos e privados
  • Argumentos opcionais e obrigatórios de métodos
  • Getters & Setters
  • Entidades, Enums, Constantes
  • Interfaces e Herança (Implents & Extends)
  • Métodos Abstratos
  • Serviços e injeção de dependência
  • Entendendo Prototype
  • Callbacks
  • Sort para ordenação de Arrays
  • Entendendo Promises
  • AJAX e chamadas assíncronas
  • Serviços REST (GET, POST, PUT, DELETE) com protocolo HTTP
  • Entendendo formato de dados (JSON, JSONP, XML, etc)
  • Headers de requisição
  • Interceptando requisições
  • Tópicos de Segurança da Informação: Authorization, Oauth, Basic Authentication
  • Entendendo Components e two-way-data-binding
  • Entendendo o app.module  (NgModule)
  • Formulários reativos controlados na Classe (FormsModule)
  • Regex, Máscaras e validação de campos
  • Rotas
  • Decorators
  • Entendendo Observables e o subscribe
  • Criação de componentes e comunicação com @Inputs, @Outputs e Events
  • LocalStorage e SessionStorage
  • Conversão de variáveis (truncamento, arredondamento, etc)
  • Autenticação e Login de aplicações
  • Animações
  • Temas, CSS, SCSS
  • Bootstrap para criação de elementos: tables, buttons, inputs, panels, accordions, menu, forms
  • Angular generators com angular-cli: component, directive, pipe, service, class, interface, enum, module
  • Compilando o projeto como ng build
  • Condicionais de view ( ngIf, ngHide, ngClass, ngStyle, ngSwitch)
  • Inputs File e tratamento de imagens (Base 64, binary, FileReader, blob, atob, btoa)
  • Entendendo princípios de programação funcional (filter, map, reduce)
  • Design Patterns

Testes Unitários

  • Automatize sua aplicação com o JASMINE e KARMA
  • Criação de testes unitários de integração de API
  • Testando microserviços antes da integração com o backend
  • Garantindo integridade do código

NodeJS e ExpressJS

  • Criando projetos com o NPM como gerenciador de dependências
  • Configurando o package.json
  • V8 JS Engine
  • Configurando o Express.JS
  • Criando e protegendo rotas
  • Criando módulos (module.exports)
  • Entendendo CORS
  • Renderizando HTML
  • Variáveis Locais e Globais
  • Utilizando Websocket com comunicação bidirecional
  • Criptografando senhas para persistência em banco
  • Rotas protegidas com o JWT (JSON Web Token)
  • Integração do Express com o MongoDB utilizando o Mongoose
  • Compreendendo Roles de aplicação
  • Criando um módulo para tratamento e persistência de imagens (encode, decode, compress, save, buffer, binary)
  • Criando logs da aplicação
  • Criando scripts Shellscripts para automação de rotinas e deploys
  • Enviando email via SMTP

MongoDB

  • Mongo Shell
  • Diferença de SQL para noSQL
  • Fazendo CRUD com MongoDB (Create, Read, Update, Delete)
  • Inserindo documents em collections
  • Recuperando e atualizando documents
  • Removendo um document
  • Consultas avançadas: find, findOneAndUpdate, getCollection, limit, findById, upsert, etc
  • Atualizando documentos em massa
  • Regex no mongoDB para tratamento de acentuação
  • Queries de similaridade no MongoDB
  • Ordenação de dados
  • Criando Ids dinâmicos baseados no timestamp atual
  • Otimizações e queries performáticas
  • Fazendo backup da base de dados
  • Paginando documentos
  • Operadores lógicos em queries: $or, $and, $not, $nor
  • Operadores de comparação em queries: $lte, $in, $gte, etc
  • Operadores de queries baseadas em arrays: $all, $elemMatch, $size
  • Validações e Schemas com Mongoose