FUNDAMENTOS DE WEB DEVELOPMENT
Protocolos de comunicação na web
Tecnologias e ferramentas front-end e back-end
Gestão de projectos web
Domínios e alojamento de sites
METODOLOGIAS AGILE PARA GESTÃO DE PROJETOS
Metodologias Processo de Design Digital
Processos de desenvolvimento de produtos (Agile, Lean e Waterfall)
Conceito de MVP (Minimum Viable Product)
Processo de design (etapas)
The Design Sprint (Google Product Design Sprint)
Manifesto Ágil, Valores e Princípios Ágeis
WORKSHOP: SCRUM
Manifesto Ágil
Raízes do SCRUM
Visão geral Framework SCRUM
Papéis e Responsabilidades: PO, SM e Time
Artefatos do SCRUM
Eventos
Implementação
Métricas
FUNDAMENTOS DE UI/UX PARA DEVELOPERS
Introdução ao Ux & Ui
Multi-screen & Responsive Challenges
UX/UI and development
Arquitetura de informação
Design Patterns & Componentes
Wireframing & Prototipagem
Assets for development
HTML5
Estrutura de uma página HTML
Elementos e atributos
Elementos de texto
Listas
Hiperligações
Imagens
Tabelas
Formulários
Elementos multimédia
Elementos estruturais do HTML5
CSS3
Evolução das CSS
Utilizar CSS em páginas Web
Selectores CSS
Unidades
Trabalhar com cores
Vendor prefixes
Formatação de texto
Tipografia
Backgrounds e gradientes
Borders e sombras
Box model
Layout de páginas
Novos métodos de layout em CSS3
Propriedades para tabelas e formulários
Criação de elementos de navegação
CSS sprites e elementos interactivos
Transforms, transitions e animations
Frameworks front-end – Bootstrap
WORKSHOP: SASS
Preprocessing
Variáveis
Nesting
Partials
Modules
Mixins
Extend & Inheritance
Operadores
WORKSHOP: RESPONSIVE WEB DESIGN
Princípios básicos do responsive
Responsive websites vs. Mobile website vs. Mobile app
Introdução ao processo de desenvolvimento
Html5 + CSS3 princípios básicos
Media queries
Fix and fluid Layouts
Adaptive and responsive web design
Responsive design
Frameworks
Projeto Prático
FUNDAMENTOS DE PROGRAMAÇÃO (COM JAVASCRIPT)
Paradigmas de Programação (Object Oriented, Imperative e Functional Programming,…)
Processo de desenvolvimento de um algoritmo (programa) (Utilização de pseudo-código e fluxogramas)
Tipos de Dados numa linguagem de programação (Variáveis, constantes, …)
Operadores e cálculos numa linguagem de programação
Controle da execução de um programa com recurso a estruturas de decisão e repetição
JAVASCRIPT
Introdução, história e evolução dos vários standards da linguagem
Breve introdução á historia de desenvolvimento da linguagem, e a sua evolução até aos dias de hoje.
Conceitos / Instruções Básicas em javascript
- Expressões
- Comentários
- Variáveis e constantes
- Operadores
Tipos de dados primitivos em Javascript
- Numbers, Strings, Boolean, null, undefined
Estruturas de decisão e repetição em javascript
- Estruturas de decisão no controle do fluxo de um programa: (If, if/else, switch)
- Estruturas de repetição: (For, While, Do/While)
Tipos de dados Complexos, Arrays, Objectos, Funções e Built-In Objects
- Utilização de Arrays
- Criação de Objectos, propriedades e métodos
- Conceito de Função, funções com parâmetros
- Funções anónimas e IIFE (Imediate Invoked Function Expression)
- Funções “construtoras” de Objectos
- Conceito de “Scope” de uma variável, varáveis locais e globais, diferenças em ES6 com let e const
- Built-In Objects em JS
Browser Object Model (BOM)
Document Object Model (DOM)
Global Objects (Number, String, Boolean, Undefined, Null, Object, Math, Date, …)
Conceito e manipulação do DOM (Document Object Model) numa aplicação web
- Como o Browser interpreta o HTML e cria um Objecto (DOM), representativo dos elementos da página
- Tipos de elementos(Nodes) do DOM (Document, Element, Attributes e TextNodes)
- Processo e Conceito de manipulação do DOM
- Metodos para selecionar um elemento(node) ou uma coleção de elementos(nodelist) do DOM (Live e static methods)
- Propriedades e métodos para percorrer o DOM
- Alterar conteúdos de elementos do DOM
- Inserir, mover ou eliminar elementos do DOM
- Manipulação de atributos de elementos do DOM
- Trabalhar com Eventos em Javascript
Conceito de interactividade com Eventos em JS
Categorias (tipos) de Eventos em JS
Definição de Eventos em JS (HTML event handler’s, Event Handler’s, DOM EventListeners)
Conceito de Event Flow e suas fases em JS (Capturing, targeting e bubbling)
Conceito de Event Object em JS
Delegação de Eventos em JS
Introdução á especificação ES6
Evolução do standard de javascript e novas especificações ES6, ES7 e ES8
Utilização de “Transpilers” como o BabelJS para a compilação de ES6 em “Vanilla Javascript” standard (ES5)
Variáveis e parâmetros em ES6 (let e const, Destructuring, Default Parameters, Classes, Rest e Spread operators, multiline e template strings,…)
Arrow functions, Iterators, e outros conceitos de Functional programming
Novos métodos de manipulação de Arrays e Objectos (map, reduce, Object.Assign(), …)
AJAX e JSON com Javascript (ES6)
- Conceito de Ajax com JS (requests e responses)
- Tipos de dados numa comunicação assíncrona com o servidor
- Conceito de Promises (ES6)
- Utilização da “Fetch API” para chamadas assíncronas.
- Gestão de erros em Javascript
- Filtrar, Ordenar e pesquisar numa estrutura de dados em JS
- Introdução e utilização de algumas API’s de HTML5 (LocalStorage, SessionStorage, Geolocation, …)
FRONTEND FRAMEWORKS – ANGULAR
Introdução, Ambiente de Desenvolvimento:
- Breve introdução ao ECMAScript, novas funcionalidades da especificação ES6 (Classes, fat Arrow functions, spread e rest operators, destructuring, …)
- Breve introdução á sintaxe do Typescript
- Gestão de “packages, librarias e frameworks” de Javascript com npm (ou yarn)
Introdução ao Angular
- Enquadramento da utilização da framework Angular para desenvolvimento Web
- Abordagem e explicação genérica sobre a framework
- Utilização de Angular CLI como ferramenta para gerir, e desenvolver projetos em Angular
- Conceitos de compilação JIT (Just in Time) e AoT (ahead of time)
- Demonstração prática da estrutura de uma aplicação em Angular
Elementos estruturais de uma Aplicação em Angular
- Components
- Services
- Directives
- Pipes
- Modules
- Conceito de Data-Binding em Angular
Navegação entre componentes de uma Aplicação – Rounting
- Conceitos básicos de “Routing”
- Implementação de “Routing” e modulos que compõem uma estrutura de navegação
- Passagem de “Data” em “Routing”
- Conceito de “Child Routes”
Dependency Injection em Angular
- Introdução ao Padrão de Desenho : “Dependency Injection”
- “Injectors” e “Providers”, “injectar” um serviço, utilização do HttpClient.
- Reactive programming em Angular, com Observables
Estratégia de comunicação entre componentes
- Criar “loosely-coupled” components (@Input e @output properties)
- Como passar dados entre componentes hierarquicamente relacionadas
- Utilização do Padrão de Desenho “Mediator” através de DI de serviços
- “Change Detection” em Angular e métodos “lifecycle” de uma componente
Introdução a API Forms do Angular
- Template-driven forms em Angular
- Reactive forms em Angular
- Utilizar o FormBuilder
- Validação de Forms com Validators Built-in
Interacção com servidores através do HttpClient
- Introdução ao Modulo HttpClient
- Interacção com webserver em “node” e Typescript
- Efetuar chamadas para o servidor
- Reactive Extensions (NGRX) em Angular
FRONTEND FRAMEWORKS – REACT
Build Workflow
Componentes
JSX
Restrições JSX
State
Handling Events
Two Way Binding
Lists, keys & mapping
Components Lifecycle
React Hooks
Ajax in React
Axios
Forms and Form Validation
Redux
Redux Advanced
Deploying React project
NEXT.js
WORKSHOP: GIT
Instalação e configuração de Servidor GIT
Instalação de Cliente GIT
Criar uma equipa
Criar um projecto
Configurar repositório
Criar um branch a partir de master
Commit
Revert
Merge
Deploy
PROJETO
FUNDAMENTOS DE BACK-END DEVELOPMENT
Modelo Cliente – Servidor
Protocolos de de transferência de informação
Configuração da máquina de desenvolvimento
INTRODUÇÃO À ESTRUTURAÇÃO DE DADOS
Modelo Relacional
Entidades ; atributos; relacionamentos
Tipos de relação
Formas normais
BASES DE DADOS: MYSQL
Modelo físico
Construção de querys MySQL: INSERT, DELETE , CREATE, SELECT, UPDATE, DROP, JOIN,…
SP e Cursors
PHP
Introdução ao PHP
- Anatomia de um script
- Tipos de dados
- Variáveis e operadores
- Estruturas de controlo e decisão
- Gestão de erros
Funções
- Sintaxe base
- Retornar valores
- Domínio de variáveis (scope)
Arrays
- Introdução às arrays
- Operações (comparação, contagem, pesquisa e gestão de elementos)
- Iterações (ponteiros)
- Ordenação
Strings
- Introdução às strings
- Comparação, pesquisa e substituição de caracteres
- Formatação
OOP
- Declarar uma classe e criar instâncias
- Métodos e propriedades
- Interfaces
Programação Web
- Formulários e URLs (GET, POST, Uploads)
- HTTP Headers (redireccionamento, cookies, sessões)
- Envio de emails (função mail)
Integração com MySQL
- Abrir e fechar uma ligação ao MySQL
- Executar comandos SQL
- Processar dados da base de dados
Streams
Trabalhar com diretorias
WORKSHOP: PHP FRAMEWORKS
O que é uma framework e uma micro-framework
Vantagens de usar uma Framework
Diferenças entre frameworks
Utilização do composer
Padrão de desenho MVC
O que é o controlador
O que é o modelo
O que é uma vista
Criação de uma aplicação PHP usando uma Framework
CRIAÇÃO DE REST API’S
O que é uma API REST
Protocolo HTTP
Tipos de pedidos e códigos de resposta
Respostas JSON
Respostas XML
Autenticação com base em tokens
Criação da documentação para a API
WORKSHOP: MONGODB + NODEJS + EXPRESSJS
MongoDB
- Instalação
- Criação de modelo de dados
- Querys
NodeJS
- O que é o NodeJS
- Utilização do NPM – Node Package Manager
- Criação de uma aplicação NodeJS
- Funcionamento do express para resposta a pedidos HTTP
- Bases de dados não relacionais com MongoDB
- Utilização de WebSockets usando SocketIO
NativeScript
- O que é o NativeScript
- Como funciona o NativeScript
- Instalação das ferramentas de desenvolvimento
- Criação de UI
- Arquitetura da aplicação e navegação
- Modulos
- Data binding
- Eventos
- Integração com API’s nativas
PROJETO