SlideShare uma empresa Scribd logo
Workshop fullstack
React & Adonis.JS
Velrino feat. Tadeu
O que é Full Stack ?
Conjunto de soluções
Características:
- Back-end
- Front-end
- DevOps
O que é Full Stack ?
O que é Full Stack ?
O que é Back-end ?
Camada do servidor
Características:
- Comunicação com banco de dados
- Regras de negócios
- Rotinas
O que é Back-End ?
O que é Adonis.JS ?
O que é Adonis.JS ?
Framework full-stack
Fortes referências ao Laravel
Construído em Node.JS
Padrão recomendado pela documentação MVC
ES6
Mais informações:
https://adonisjs.com/docs/4.1/about
Preparando Ambiente
Preparando ambiente
Instalando o Adonis.JS
npm i -g @adonisjs/cli
Criar um novo projeto do tipo API
adonis new api --api-only
Acesse o diretório do novo projeto
cd api
Iniciando o projeto
adonis serve --dev
Preparando ambiente
Acesse no navegador
http://127.0.0.1:3333/
Estrutura
Estrutura - App
App - todas responsabilidades da aplicação
Middleware - todas funções
intermediárias a aplicação
Models - todas modelagens
da aplicação
Estrutura - App
Outras camadas no App
Controllers - responsável pela lógica da aplicação
Entities - responsável pelo tratamento de dados e
parâmetros das entidades
Presenters - responsável em fazer comunicação interna
com externa
Repositories - responsável pelas queries ao banco de
dados
Services - responsável pela comunicação com serviços
externos
Estrutura - Config
Config - todas responsabilidades de configuração do projeto
auth - parâmetros de
autenticação
app - parâmetros como
arquivos temporários,
cookie, cache
bodyParser - parâmetros de
requisição e resposta da API
cors - parâmetros dos
recursos sejam acessados
por uma página web de um
domínio diferente.
database - parâmetros das
conexões com banco de
dados
hash - parâmetros das
criptografias no projeto
Estrutura - Database
Database - todas responsabilidades de estruturação e dados para o banco de dados
migrations - toda estrutura
do banco de dados
factory - geração dos dados
seeds - todos dados iniciais
do banco de dados
Mais na documentação
https://adonisjs.com/docs/4.1/database
Estrutura - Start
Start - todas responsabilidades iniciais do projeto
app - todos provedores de
serviços do projeto
routes - todas rotas do projeto
kernel - todos middlewares
do projeto
Mais na documentação
https://adonisjs.com/docs/4.1/database
Estrutura - Raiz
Raiz - raiz do projeto
.env - todas variáveis de
ambiente
package.json - todos
pacotes do projeto e
instruções do node no
projeto
server.js - arquivo inicial do projeto
Criando o banco de dados
Criando o banco de dados
Instalando o pacote do SQLite3
npm install --save sqlite3
Criar a migration/tabela de empresas
adonis make:migration companies
Criar a migration/tabela dos estabelecimentos
adonis make:migration places
Criando o banco de dados - migrations
Criando o banco de dados - migrations
Rodar as migrations
adonis migration:run
Criando o banco de dados - migrations
Criando a service
Criando service
Instalando Google Maps
npm i --save @google/maps
Crie a pasta Services
Crie o arquivo Maps.js
Coloque a key do Google Maps no .env
Criando o controller
Criando controller
Instalando Google Maps
npm i --save @google/maps
Criando o controller
adonis make:controller Places --type http
Criando o controller - create
válida maps
captura parâmetros do maps
cria no DB
usa o service
captura os parâmetros
retorna criação do DB
importa modelagem do place
importa service do maps
mensagem para caso de erro
usa parâmetro address
Criando a rota
Criando rota - create
caminho controller e função
arquivo
TESTANDOOOOO!
Testando - create
Body -> RAW -> JSON
Retorno da API
Listar todos os estabelecimentos
Controller - get
query com paginação
Rota - get
caminho controller e função
Testando - get
Request
Response
Atualizando o estabelecimento
Controller - put
Route - put
caminho controller e função
Testando - put
Request
Response
Melhorando o atualizando
estabelecimento
Controller - put
Testando positivo - put
Testando negativo - put
Deletando o estabelecimento
Controller - delete
Rota - delete
Testando positivo - delete
Testando negativo - delete
Dev front-end pediu para alterar o
formato de endereço
Alterando o banco de dados
Alterar a tabela dos estabelecimentos
adonis make:migration places
Escolhe sabiamente a opção select table
Alterando o banco de dados - migrations
Alterando o banco de dados - migrations
Atualizar as migrations
adonis migration:refresh
Alterando o banco de dados - migrations
Testando o create
Testando o create
Adicionando validação
Adicionar o validator
adonis install @adonisjs/validator
Adicionar no providers do start/app.js
'@adonisjs/validator/providers/ValidatorProvider
'
Alterando o banco de dados - migrations
Referência
https://adonisjs.com/docs/4.1/validator
Atualizar as migrations
adonis migration:refresh
Alterando o banco de dados - migrations
Corrigindo o create
Corrigindo o create
Testando o create
Testando o create
Corrigindo o update
Corrigindo o update
Testando o update
CORS
Adicionar o validator
adonis install @adonisjs/cors
Adicionar no providers do start/app.js
'@adonisjs/cors/providers/CorsProvider'
Adicionar no providers do start/kernel.js
'Adonis/Middleware/Cors'
CORS
Referência
https://adonisjs.com/docs/4.1/cors
@velrino
Denis “Velrino” Magalhães
O que é Front-end ?
Interface gráfica disponível para o usuário
Características:
- Interação simples e direta
- HTML, CSS e frameworks
- Experiência do usuário
O que é Front-End ?
O que é React e React Native ?
- É “uma biblioteca JavaScript declarativa,
eficiente e flexível para a criação de
interfaces de usuário (UI)”.
- Single Page Application (SPA)
- React é flexível, tudo é componente
- Sintaxe com JSX (Escrita muito semelhante
ao HTML)
- Interface totalmente reativa perante as
informações na tela
O que é React ?
- É um framework para o desenvolvimento
de aplicativos mobile nativos que utiliza o
React na sua construção
- Criado pelo Facebook com código aberto
- Único código Javascript
- Faz build para Android e IOS
E o React Native ?
React Native X outras tecnologias
O que é Expo e para que ele serve ?
- É uma ferramenta que abstrai o código
nativo tanto Android e IOS do seu
aplicativo
- Somente código Javascript
- É possível apenas instalar bibliotecas que
não precisam de código nativo
- Faz build para Android e IOS no servidor
O que é Expo ?
Como será o aplicativo que vamos
desenvolver ?
- O aplicativo será feito utilizando React
Native e Expo
- Nela será possível cadastrar
estabelecimentos de empresas em
diferentes locais no mapa
- React Hooks
- Consumo de API REST com Axios
- Requisições GET, POST E PUT
- Google Maps API
- Styled Components
- React Native 0.59.8
- Expo SDK v35.0.0
Descrição do aplicativo
O que são React Hooks ?
- É uma forma de escrever componentes
React em forma de funções que possuem
estado
- Permitem ao desenvolvedor controlar o
state de uma forma mais simples, mais
rápida e mais intuitiva
- Hooks básicos
- UseState
- UseEffect
- UseContext
O que são React Hooks ?
Preparando ambiente
Instalando o Expo CLI
npm i -g expo-cli
ou
yarn global add expo-cli
Criar um novo projeto React Native com Expo
expo init PlacesAppTeste
Acesse o diretório do novo projeto
cd PlacesAppTeste
Iniciando o projeto
yarn start
ou
npm start
expo start
Preparando ambiente
Acesse no navegador
http://localhost:19002/
Apresentando projeto padrão em Expo
Instalando dependências
necessárias
Instalando o Expo CLI
npm i -g expo-cli
ou
yarn global add expo-cli
Criar um novo projeto React Native com Expo
expo init PlacesAppTeste
Acesse o diretório do novo projeto
cd PlacesAppTeste
Iniciando o projeto
yarn start
ou
npm start
expo start
Link para download do projeto inicial
com a estrutura pronta
https://bit.ly/2nriaAh
Instalando dependências
necessárias para o projeto
Bibliotecas necessárias externas do Expo
yarn add axios
yarn add react-hook-form
yarn add styled-components
Bibliotecas necessárias do Expo
expo install expo-location
expo install expo-permissions
expo install react-native-maps
@tadeumx1
Matheus Tadeu
Agradecimentos
Anúncio

Recomendados

Wireless gas leakage detector with device control
Wireless gas leakage detector with device control
Reshma Gowri Chandran
 
GPS Tracker
GPS Tracker
Shivam Sharma
 
Tour and Travel Management System ppt
Tour and Travel Management System ppt
RAJAT BHUYAR
 
Women Safety Night Patrolling Robot Using IOT
Women Safety Night Patrolling Robot Using IOT
Dr. Amarjeet Singh
 
Mini Project PPT
Mini Project PPT
Faiz Ahmad Khan
 
Fnal year project on iot accident detection and tracking system 26-may 21'
Fnal year project on iot accident detection and tracking system 26-may 21'
ankitadeokate
 
Ultrasonic radar mini project
Ultrasonic radar mini project
vishnuchiluka
 
Android testing
Android testing
JinaTm
 
WIFI CONTROLLED SPY ROBOT CAR
WIFI CONTROLLED SPY ROBOT CAR
Anudeep Chowdary Kamepalli
 
Snake project report
Snake project report
Manju Rajput
 
Bluetooth controlled robot using arduino uno and HC-05
Bluetooth controlled robot using arduino uno and HC-05
MuhammadUsman1709
 
Computer vision ppt
Computer vision ppt
RachitSogani1
 
Fitness management application
Fitness management application
Rishabh Shukla
 
Drowsiness detection ppt
Drowsiness detection ppt
safepassage
 
Drowsiness Detection Presentation
Drowsiness Detection Presentation
Saurabh Kawli
 
Restaurant management
Restaurant management
Trupti Shingala, WAS, CPACC, CPWA, JAWS, CSM
 
SMART CAR-PARKING SYSTEM USING IOT
SMART CAR-PARKING SYSTEM USING IOT
Saipandu143
 
Automated attendence system PPT
Automated attendence system PPT
ThejeshReddyJ
 
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
Gourav Srivastava
 
Seminar on night vision technology ppt
Seminar on night vision technology ppt
deepakmarndi
 
Flutter
Flutter
Himanshu Singh
 
Rangefinder ppt
Rangefinder ppt
KaushlendraSingh44
 
Final year internship presentation
Final year internship presentation
Nischal0101
 
Home security system using iot
Home security system using iot
MDMarufMF
 
ROBOTIC ARM
ROBOTIC ARM
lavanya kaluri
 
Vehicle tracking system using iot and gps
Vehicle tracking system using iot and gps
krishna kumar
 
Android-based surveillance Robot
Android-based surveillance Robot
Tonmoy Bora
 
Driver Drowsiness Detection System using machine learning ppt.
Driver Drowsiness Detection System using machine learning ppt.
likithkumargowda
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
Cloves Moreira Junior
 
Independência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e Redux
Yuri Adams
 

Mais conteúdo relacionado

Mais procurados (20)

WIFI CONTROLLED SPY ROBOT CAR
WIFI CONTROLLED SPY ROBOT CAR
Anudeep Chowdary Kamepalli
 
Snake project report
Snake project report
Manju Rajput
 
Bluetooth controlled robot using arduino uno and HC-05
Bluetooth controlled robot using arduino uno and HC-05
MuhammadUsman1709
 
Computer vision ppt
Computer vision ppt
RachitSogani1
 
Fitness management application
Fitness management application
Rishabh Shukla
 
Drowsiness detection ppt
Drowsiness detection ppt
safepassage
 
Drowsiness Detection Presentation
Drowsiness Detection Presentation
Saurabh Kawli
 
Restaurant management
Restaurant management
Trupti Shingala, WAS, CPACC, CPWA, JAWS, CSM
 
SMART CAR-PARKING SYSTEM USING IOT
SMART CAR-PARKING SYSTEM USING IOT
Saipandu143
 
Automated attendence system PPT
Automated attendence system PPT
ThejeshReddyJ
 
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
Gourav Srivastava
 
Seminar on night vision technology ppt
Seminar on night vision technology ppt
deepakmarndi
 
Flutter
Flutter
Himanshu Singh
 
Rangefinder ppt
Rangefinder ppt
KaushlendraSingh44
 
Final year internship presentation
Final year internship presentation
Nischal0101
 
Home security system using iot
Home security system using iot
MDMarufMF
 
ROBOTIC ARM
ROBOTIC ARM
lavanya kaluri
 
Vehicle tracking system using iot and gps
Vehicle tracking system using iot and gps
krishna kumar
 
Android-based surveillance Robot
Android-based surveillance Robot
Tonmoy Bora
 
Driver Drowsiness Detection System using machine learning ppt.
Driver Drowsiness Detection System using machine learning ppt.
likithkumargowda
 
Snake project report
Snake project report
Manju Rajput
 
Bluetooth controlled robot using arduino uno and HC-05
Bluetooth controlled robot using arduino uno and HC-05
MuhammadUsman1709
 
Fitness management application
Fitness management application
Rishabh Shukla
 
Drowsiness detection ppt
Drowsiness detection ppt
safepassage
 
Drowsiness Detection Presentation
Drowsiness Detection Presentation
Saurabh Kawli
 
SMART CAR-PARKING SYSTEM USING IOT
SMART CAR-PARKING SYSTEM USING IOT
Saipandu143
 
Automated attendence system PPT
Automated attendence system PPT
ThejeshReddyJ
 
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
EYE BLINK SENSOR TO CONTROL ACCIDENTPpt main
Gourav Srivastava
 
Seminar on night vision technology ppt
Seminar on night vision technology ppt
deepakmarndi
 
Final year internship presentation
Final year internship presentation
Nischal0101
 
Home security system using iot
Home security system using iot
MDMarufMF
 
Vehicle tracking system using iot and gps
Vehicle tracking system using iot and gps
krishna kumar
 
Android-based surveillance Robot
Android-based surveillance Robot
Tonmoy Bora
 
Driver Drowsiness Detection System using machine learning ppt.
Driver Drowsiness Detection System using machine learning ppt.
likithkumargowda
 

Semelhante a Workshop react + adonis.js (20)

Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
Cloves Moreira Junior
 
Independência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e Redux
Yuri Adams
 
Mean Stack
Mean Stack
Bruno Catão
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf
Julia469065
 
Introdução ao NodeJS - Utilizando o Nodejs
Introdução ao NodeJS - Utilizando o Nodejs
abiliocoelho2014
 
Node JS - Parte 2
Node JS - Parte 2
Bruno Catão
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full Stack
João Gabriel Lima
 
Escalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJS
Criciúma Dev
 
desenvolvimento-web-javascript
desenvolvimento-web-javascript
Felipe Barros
 
Criando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-on
Rodolfo Bueno
 
Ionic workshop
Ionic workshop
Alvaro Viebrantz
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Cesar Romero
 
SHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotas
loncleanime
 
Write once, run "everywhere"
Write once, run "everywhere"
Stefan Horochovec
 
Workshop frontend
Workshop frontend
Leandro Mancini
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
Giovanni Kenji Shiroma
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_js
gustavobeavis
 
Desenvolvimento de aplicativo utilizando o framework ionic
Desenvolvimento de aplicativo utilizando o framework ionic
Universidade Federal Rural do Semi Arido
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
Cloves Moreira Junior
 
Independência no Front-End com GraphQL e Redux
Independência no Front-End com GraphQL e Redux
Yuri Adams
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
435142330-Guia-Completo-React-Js.pdf
435142330-Guia-Completo-React-Js.pdf
Julia469065
 
Introdução ao NodeJS - Utilizando o Nodejs
Introdução ao NodeJS - Utilizando o Nodejs
abiliocoelho2014
 
Aplicações de Alto Desempenho com JHipster Full Stack
Aplicações de Alto Desempenho com JHipster Full Stack
João Gabriel Lima
 
Escalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJS
Criciúma Dev
 
desenvolvimento-web-javascript
desenvolvimento-web-javascript
Felipe Barros
 
Criando apps nativos com react e javascript. Hands-on
Criando apps nativos com react e javascript. Hands-on
Rodolfo Bueno
 
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Desenvolvendo Sistema Cloud e Web Full-stack Developer
Cesar Romero
 
SHIPTO MEE - Software de controle de rotas
SHIPTO MEE - Software de controle de rotas
loncleanime
 
Write once, run "everywhere"
Write once, run "everywhere"
Stefan Horochovec
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
Giovanni Kenji Shiroma
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_js
gustavobeavis
 
Anúncio

Mais de Denis Velrino (6)

Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no Flutter
Denis Velrino
 
Html, css e javascript
Html, css e javascript
Denis Velrino
 
Angular + Ionic: A dupla dinâmica
Angular + Ionic: A dupla dinâmica
Denis Velrino
 
Microserviços
Microserviços
Denis Velrino
 
Ingresse Coin.pptx
Ingresse Coin.pptx
Denis Velrino
 
Monitorando Servidores na Ingresse
Monitorando Servidores na Ingresse
Denis Velrino
 
Renderizando widgets via JSON no Flutter
Renderizando widgets via JSON no Flutter
Denis Velrino
 
Html, css e javascript
Html, css e javascript
Denis Velrino
 
Angular + Ionic: A dupla dinâmica
Angular + Ionic: A dupla dinâmica
Denis Velrino
 
Monitorando Servidores na Ingresse
Monitorando Servidores na Ingresse
Denis Velrino
 
Anúncio

Workshop react + adonis.js