{"id":17717264,"url":"https://github.com/devzgabriel/google-drive","last_synced_at":"2025-07-07T07:06:22.474Z","repository":{"id":50702281,"uuid":"404032567","full_name":"devzgabriel/google-drive","owner":"devzgabriel","description":"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","archived":false,"fork":false,"pushed_at":"2021-09-13T00:32:29.000Z","size":4093,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T03:12:24.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devzgabriel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-07T15:36:21.000Z","updated_at":"2022-07-31T21:47:20.000Z","dependencies_parsed_at":"2022-09-12T14:51:01.319Z","dependency_job_id":null,"html_url":"https://github.com/devzgabriel/google-drive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/devzgabriel/google-drive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devzgabriel%2Fgoogle-drive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devzgabriel%2Fgoogle-drive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devzgabriel%2Fgoogle-drive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devzgabriel%2Fgoogle-drive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devzgabriel","download_url":"https://codeload.github.com/devzgabriel/google-drive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devzgabriel%2Fgoogle-drive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264032246,"owners_count":23546798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-25T14:19:33.942Z","updated_at":"2025-07-07T07:06:22.427Z","avatar_url":"https://github.com/devzgabriel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google Drive Clone - Semana JS Expert 5.0\n\n## Preview\n\n![](./resources/demo.gif)\n\n## Checklist Features\n\n- Web API\n\n  - [] Deve listar arquivos baixados\n  - [] Deve receber stream de arquivos e salvar em disco\n  - [] Deve notificar sobre progresso de armazenamento de arquivos em disco\n  - [] Deve permitir upload de arquivos em formato image, video ou audio\n  - [] Deve atingir 100% de cobertura de código em testes\n\n- Web App\n  - [] Deve listar arquivos baixados\n  - [] Deve permitir fazer upload de arquivos de qualquer tamanho\n  - [] Deve ter função de upload via botão\n  - [] Deve exibir progresso de upload\n  - [] Deve ter função de upload via drag and drop\n\n## Desafios pós projeto\n\n1. _Backend_: Salvar o arquivo na AWS ou qualquer serviço de storage\n   - Nosso projeto hoje armazena arquivos em disco. o desafio é você via Stream, fazer upload para algum serviço na nuvem\n   - Como plus, manter 100% de code coverage, ou seja, crie testes para sua nova feature\n2. _Frontend_: Adicionar testes no frontend e alcançar 100% de code coverage\n   - Você aprendeu como fazer testes no backend. Usar o mesmo processo para criar testes unitários no frontend com Jest\n   - Caso tenha duvidas, acesse o [exemplo](https://github.com/ErickWendel/tdd-frontend-example) e deixe uma estrela!\n3. _Infraestrutura_: Publicar aplicação com seu SSL customizado em máquina virtual\n   - 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\n\n## Créditos ao Layout \u003c3\n\n- O Layout foi adaptado a partir do projeto do brasileiro [Leonardo Santo](https://github.com/leoespsanto) disponibilizado no [codepen](https://codepen.io/leoespsanto/pen/KZMMKG).\n\n## FAQ\n\n- Certificado SSL inválido?\n\n  - Esse erro acontece porque gerei um certificado atrelado ao usuário da minha máquina.\n  - 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](./aulas/01/grive-api/certificates/README.md)\n\n- Rodei `npm test` mas nada acontece, o que fazer?\n  - Verifique a versão do seu Node.js. Estamos usando na versão 16.8. Entre no [site do node.js](https://nodejs.org) e baixe a versão mais recente.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevzgabriel%2Fgoogle-drive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevzgabriel%2Fgoogle-drive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevzgabriel%2Fgoogle-drive/lists"}