/Delivery_Back-End

šŸ±ā€šŸ Desafio prĆ”tico Back-End de Entregas

Primary LanguageTypeScript

Delivery Back-EndšŸ„™šŸ’Ø

Projeto prƔtico para alavancar conhecimentos no Back-End, adquiridos no curso intensivo Ignite, trilha Node.Js

image


Captura de Tela (402) Captura de Tela (403) Captura de Tela (395) Captura de Tela (396) Captura de Tela (397) Captura de Tela (398)

DescriĆ§Ć£o ā˜

Desafio PrĆ”tico que consiste em um sistema de Clientes, Entregadores e Pedidos. Utilizando o MySQL Database e Prisma como ORM.. praticando relacionamentos entre tabelas Many to Many, praticando implemetaĆ§Ć£o de AutenticaĆ§Ć£o Permissiva com JWT As relaƧƵes muitos-para-muitos referem-se a relaƧƵes em que zero ou mais registros em um lado da relaĆ§Ć£o podem ser conectados a zero ou mais registros no outro lado.

Ajustes e melhorias āš™šŸ› 

O projeto ainda estĆ” em desenvolvimento e as prĆ³ximas atualizaƧƵes serĆ£o voltadas nas seguintes tarefas:

  • Cadastrar Clientes verificados por Middleware de autenticaĆ§Ć£o
  • Gerar Hash de Password
  • Cadastrar Entregadores verificados por Middleware de autenticaĆ§Ć£o
  • InserĆ§Ć£o no Banco de Dados
  • VerificaĆ§Ć£o se o Cliente estĆ” autenticado (JWT)
  • VerificaĆ§Ć£o se o Entregador estĆ” autenticado (JWT)
  • ImplementaĆ§Ć£o de JWT
  • Relacionamento entre Cliente e Entregas - Many to Many
  • Relacionamento entre Entregadores e Entregas - Many to Many
  • Upload de NF (Nota Fiscal)
  • Cadastro de Entregas
  • Estado da Entrega - Entregue ou Pendente
  • AvaliaĆ§Ć£o de Entregador

šŸ’» Sobre o projeto

Neste projeto, foi colocado em prĆ”tica conteĆŗdos aprendidos:

  • PrincĆ­pios S.O.L.I.D usados:

    • S - PrincĆ­pio da Responsabilidade ƚnica

    • L - PrincĆ­pio da SubstituiĆ§Ć£o de Liskov

    • D - PrincĆ­pio da InversĆ£o de DependĆŖncia

  • IntegraĆ§Ć£o de API com Banco de Dados Relacional MySQL via ORM Prisma.io

    Prisma.io deferentemente dos ORMĀ“s padrĆ£o tem uma facilidade maior na criaĆ§Ć£o de Relacionamentos entre as tabelas. O objetivo do Prisma.io Ć© tornar nĆ³s DevĀ“s mais produtivos ao criarmos Queries de consulta SQL.

  • AutenticaĆ§Ć£o Permissiva nas rotas com JWT


  • ImplementaĆ§Ć£o de Testes UnitĆ”rios:

Os Teste UnitĆ”rios sĆ£o aqueles que sĆ£o implementados apenas em alguns pedaƧos da aplicaĆ§Ć£o, como Services, UseCases... Resumindo, o foco central dos Testes UnitĆ”rios sĆ£o as Regras de NegĆ³cios.

Isso irƔ me ajudar a entender e exercitar os diferentes tipos de aplicaƧƵes e estruturas que podemos fazer.

Feito Com: āš’

Node.Js TypeScript MySQL Prisma Prisma

šŸ‘‘ Desafios:

  • ImplementaĆ§Ć£o de Testes de IntregaĆ§Ć£o
  • ImplementaĆ§Ć£o de Testes UnitĆ”rios
    • Teste de CriaĆ§Ć£o de Client
    • Teste de VerificaĆ§Ć£o de Client jĆ” existente
    • Teste de CriaĆ§Ć£o de Client Token JWT
    • Teste de CriaĆ§Ć£o de Deliveryman
    • Teste de VerificaĆ§Ć£o de Deliveryman jĆ” existente
    • Teste de CriaĆ§Ć£o de Deliveryman Token JWT
  • Front-End com React.Js
  • IntegraĆ§Ć£o com GitHub OAuth