emanuelgustavo / be-the-hero-semana-omnistack11-rocketseat

Semana focada em desenvolver um aplicação Web, do back ao front-end e com mobile utilizando a stack JavaScript.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

11ª Semana Omnistack Rocketseat

Semana focada em desenvolver um aplicação Web, do back ao front-end e com mobile utilizando a stack JavaScrip.


Stack Utilizada

Front-End

  • React Uma biblioteca interativa para criar interfaces com o usuário.

Mobile

  • React Native Com o lema: "Learn once, write anywhere", utiliza os mesmos conceitos do React para criar interfaces nativas para dispositivos móveis. Com um código e uma linguagem é possível criar apps para Android e iOS.

  • Expo É um framework e uma plataforma universal para aplicação React, definindo ferramentas construídas em React Native e plataformas nativas que ajudam o desenvolvedor a construír, lançar e interagir rapidamente no iOS e Android a partir do mesmo código JavaScript/TypeScript.

Back-End

  • NodeJs Node.js® é um runtime JavaScript desenvolvido com o Chrome's V8 JavaScript engine. Basicamente.

  • SQLite Este é o nosso banco de dados. Do tipo SQL, onde a estrutura é bem definida.


O que construímos?

Uma aplicação para que ONG's possam divulgar seus casos e conseguir financiamento voluntário para cada um deles.

1º Dia

Foi apresentado o projeto, cujo mockup do layout foi construído no figma. Também fizemos o ritual do "Hello World" em cada tecnologia utilizada. É possível acessar esses tutoriais aqui:

2º Dia

No segundo dia construímos o back-end da aplicação com as seguintes tecnologias:

  • NodeJS Utilizamos o nodejs como base da aplicação para gerenciar a conexão entre o front-end e o banco de dados. Foram utilizadas as seguintes bibliotecas:

    • Express => Utilizado para gerenciar as requisições, rotas e URLS. As configurações de conexão podem ser acessadas aqui e aqui
    • Nodemon => Utilzado para monitorar as alterações em todos os arquivo e dar "restart" no servidor.
    • SQLite => Para o banco de dados.
    • Knex => Para gerenciar o banco de dados, com o CRUD completo. O banco de dados foi instalado através do Knex conforme mostrado aqui.
    • CORS => Para permitir o acesso do front-end e mobile à aplicação.
Definição de Entidades e Funcionalidades:
  • Entidades:
  • Funcionalidades
    • Login/Logout da ONG
    • Cadastro da ONG
    • Deletar Casos
    • Listar casos específicos de uma ONG
    • Listar todos os casos
    • Entrar em contato com a ONG

3º Dia

Nesse dia contruímos o front-end da aplicação, utilizando React e outras bibliotecas:

  • Axios => cliente HTTP, onde é possível fazer request HTTP do nodeJs.
  • React Icons => biblioteca que permite a inserção de ícones como componentes dentro da aplicação.

4º Dia

Nesse dia construímos o app mobile, utilizando o React Native e Expo.

Utlizamos a Stack Navigation para o nosso app.

Outras bibliotecas utilizadas nesse projeto mobile:

  • expo-constants => Utilizado para estilizar o margin na parte de cima do smartphone para não ficar abaixo da barra de status.
  • expo-mail-composer => Utilizado para a funcionalidade de envio de email para a ONG.
  • deep-linking => Utilizado para acessar o What's app na funcionalidade de entrar em contato com a ONG.
  • INTL => Utilizado para formatar os números na UI.

5º Dia - Tópicos avançados

Nesse dia adicionamos validação e testes na nossa aplicação:

  • celebrate => Utilizado para fazer as validações nos dados enviados ao banco de dados.
  • Joi => Utilizado em conjunto com o celebrate para a validação dos dados.
  • Jest => Utilizado para os testes unitários e de integração, implementados aqui
  • [cross-env](- cross-env => Utilizado para utilizar variáveis de ambiente para os testes de integração. Veja mais
  • supertest => Utilizado para os testes com HTTP.

Agradecimentos

Depois de uma semana intensa, tenho muito a agradecer a equipe da Rocketseat pelo empenho, dedicação e disponibilidade demonstradas nesse evento. Foi minha primeira participação e com certeza não será a última. Um agradecimento especial também ao Filipe Deschamps pelos e-mail diários com sua opinião sobre todas as aulas da semana.

Um salve de Santa Catarina e até a próxima!

Pós Semana Omnistack

Após o término da semana Omnistack e da conclusão do projeto, resolvi implementar alguma features para continuar evoluindo o que aprendi no curso.

Novas features:

  • Inclusão do cadastro de voluntários
  • Criação de dashboard do voluntário e da ong
  • Incidents com status e prazo para arrecadação

About

Semana focada em desenvolver um aplicação Web, do back ao front-end e com mobile utilizando a stack JavaScript.


Languages

Language:JavaScript 88.6%Language:CSS 11.0%Language:HTML 0.4%