/google-drive

A clone to study about Asynchronous processing - Handle Files and Dates - Handle files on demand - Test Setup (TDD) - Logging - Modern design patterns - Certificates - New features of Node 16

Primary LanguageJavaScript

Google Drive Clone - Semana JS Expert 5.0

Preview

Checklist Features

  • Web API

    • [] Deve listar arquivos baixados
    • [] Deve receber stream de arquivos e salvar em disco
    • [] Deve notificar sobre progresso de armazenamento de arquivos em disco
    • [] Deve permitir upload de arquivos em formato image, video ou audio
    • [] Deve atingir 100% de cobertura de código em testes
  • Web App

    • [] Deve listar arquivos baixados
    • [] Deve permitir fazer upload de arquivos de qualquer tamanho
    • [] Deve ter função de upload via botão
    • [] Deve exibir progresso de upload
    • [] Deve ter função de upload via drag and drop

Desafios pós projeto

  1. Backend: Salvar o arquivo na AWS ou qualquer serviço de storage
    • Nosso projeto hoje armazena arquivos em disco. o desafio é você via Stream, fazer upload para algum serviço na nuvem
    • Como plus, manter 100% de code coverage, ou seja, crie testes para sua nova feature
  2. Frontend: Adicionar testes no frontend e alcançar 100% de code coverage
    • Você aprendeu como fazer testes no backend. Usar o mesmo processo para criar testes unitários no frontend com Jest
    • Caso tenha duvidas, acesse o exemplo e deixe uma estrela!
  3. Infraestrutura: Publicar aplicação com seu SSL customizado em máquina virtual
    • Você aprendeu a gerar SSL local, o desafio é você criar um certificado (pode ser com o Let's Encrypt) e adicionar na sua aplicação

Créditos ao Layout <3

FAQ

  • Certificado SSL inválido?

    • Esse erro acontece porque gerei um certificado atrelado ao usuário da minha máquina.
    • Você pode clicar em prosseguir no browser e usar o certificado invalido que o projeto vai continuar funcionando, mas se quiser gerar o seu próprio, escrevi o passo a passo em certificates
  • Rodei npm test mas nada acontece, o que fazer?

    • Verifique a versão do seu Node.js. Estamos usando na versão 16.8. Entre no site do node.js e baixe a versão mais recente.