{"id":18706156,"url":"https://github.com/andrehaguiar/appnode","last_synced_at":"2026-04-08T23:33:01.426Z","repository":{"id":132708625,"uuid":"304142270","full_name":"AndrehAguiar/AppNode","owner":"AndrehAguiar","description":"Template NodeJS","archived":false,"fork":false,"pushed_at":"2020-10-17T20:47:31.000Z","size":317,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-09T22:37:32.798Z","etag":null,"topics":["babel","ejs","expressjs","mongoose","nodejs","webpack"],"latest_commit_sha":null,"homepage":"","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/AndrehAguiar.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-14T21:42:08.000Z","updated_at":"2020-10-17T20:47:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"6746412d-ad7f-40bf-8d02-a3078c9f4e8e","html_url":"https://github.com/AndrehAguiar/AppNode","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/AndrehAguiar/AppNode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrehAguiar%2FAppNode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrehAguiar%2FAppNode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrehAguiar%2FAppNode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrehAguiar%2FAppNode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AndrehAguiar","download_url":"https://codeload.github.com/AndrehAguiar/AppNode/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AndrehAguiar%2FAppNode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579054,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["babel","ejs","expressjs","mongoose","nodejs","webpack"],"created_at":"2024-11-07T12:13:05.013Z","updated_at":"2026-04-08T23:33:01.405Z","avatar_url":"https://github.com/AndrehAguiar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AppNode\nTemplate NodeJS\n### Curso de JavaScript e TypeScript do básico ao avançado 2020\n\n\u003cdiv class=\"course-overview--container--2OKKD\" data-purpose=\"dashboard-overview-container\"\u003e\u003cdiv class=\"course-overview--heading--290FL\" data-purpose=\"course-headline\"\u003e\u003cdiv class=\"font-heading-lg mb-space-sm\"\u003eAbout this course\u003c/div\u003e\u003cp\u003eJavascript e TypeScript - front-end e back-end (Full Stack) - Node, Express, noSQL, React, hooks, Redux, Design Patterns\u003c/p\u003e\u003c/div\u003e\u003cdiv class=\"course-overview--grid-row--1nKqQ\"\u003e\u003cdiv\u003eBy the numbers\u003c/div\u003e\u003cdiv data-purpose=\"course-main-stats\"\u003e\u003cdiv\u003eSkill level: All Levels\u003c/div\u003e\u003cdiv\u003eStudents: 10222\u003c/div\u003e\u003cdiv\u003eLanguages: Portuguese\u003c/div\u003e\u003cdiv\u003eCaptions: Yes\u003c/div\u003e\u003c/div\u003e\u003cdiv data-purpose=\"course-additional-stats\"\u003e\u003cdiv\u003eLectures: 408\u003c/div\u003e\u003cdiv\u003eVideo: 106.5 total hours\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"course-overview--grid-row--1nKqQ course-overview--course-features--2fF12\" data-purpose=\"course-features\"\u003e\u003cdiv\u003eFeatures\u003c/div\u003e\u003cdiv class=\"course-overview--wide--37Lev\"\u003e\u003cspan\u003eAvailable on \u003ca href=\"https://udemy.app.link/CpiSPRwpW9\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eiOS\u003c/a\u003e and \u003ca href=\"https://udemy.app.link/CpiSPRwpW9\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAndroid\u003c/a\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"course-overview--grid-row--1nKqQ\"\u003e\u003cdiv\u003eDescription\u003c/div\u003e\u003cdiv class=\"course-overview--wide--37Lev course-overview--description--2m1iq\" data-purpose=\"course-description\"\u003e\u003cdiv data-purpose=\"safely-set-inner-html:trusted-html:content\"\u003e\u003cp\u003eCurso de JavaScript e TypeScript do básico ao avançado - Atualizado para 2020 - O curso mais completo sobre todas as nuances do JavaScript você você vai encontrar na atualidade.\u003c/p\u003e\u003cp\u003eAprenda Javascript moderno (ES6+) para front-end (com Webpack, babel, React, React Hooks e Redux) e back-end (com Node, Express, MySQL e MongoDB) e se torne um(a) desenvolvedor(a) full stack. \u003c/p\u003e\u003cp\u003eEste curso inclui \u003cstrong\u003eJavaScript\u003c/strong\u003e e \u003cstrong\u003eTypeScript\u003c/strong\u003e, você vai aprender ambas as linguagens.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eFundamentos\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eInicialmente, o aluno aprenderá a utilizar recursos nativos do JavaScript sem a necessidade de utilizar frameworks ou bibliotecas adicionais (Javascript puro, conhecido como Vanilla JS).\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eNodeJS, Frameworks e bibliotecas \u003c/strong\u003e\u003c/p\u003e\u003cp\u003eApresentarei o Node JS, Express e o MongoDB (noSQL) para trabalhar com Javascript no Back-end. Apresentarei frameworks e bibliotecas que são padrão no mercado atualmente, como Express (servidor Web) e Mongoose (para modelar bases de dados MongoDB). Também apresentarei em detalhes o sistema de módulos do NodeJS.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eJS Tooling\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eFalaremos do Babel e Webpack, o que nos permitirá utilizar o sistema de módulos do ES6 em navegadores mais antigos que não teriam suporte para tal.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eProjeto #1\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eTambém vamos criar um projeto realizando um CRUD (create, read, update e delete) na base de dados mongo com sistema de login real usando sessions (posteriormente com JWT).\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eDeploy (Linux)\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eAo longo do curso, o aluno aprenderá tecnologias adicionais ao JS, como: criar um servidor web com NGINX para fazer proxy reverso com Node; gerenciar projetos node com o pm2; configurar um servidor linux no Google Cloud Platform (GCP), adicionar certificado SSL/TLS (HTTPS) com letsencrypt gratuitamente, configurar um repositório com o Git (e comandos adicionais do git em geral), configurar chaves SSH no servidor e computador pessoal, TypeScript do básico ao avançado e muito mais.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eTypeScript\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eUma novidade neste curso é o TypeScript, o aluno não precisará comprar outro curso para aprender essa linguagem que está tão em alta no momento.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eSegurança\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eTambém tive o cuidado de focar bastante na parte de segurança de todos os serviços utilizados ao longo do curso, com isso o aluno poderá fazer deploy de suas aplicações sem medo. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eAPI Rest\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eCriaremos uma API Rest utilizando MariaDB/MySQL (SQL) e o Sequelize, com sistema de login que utiliza JSON Web Tokens (JWT). Nesta seção, o aluno aprenderá ainda mais recursos que são padrão de mercado, como: editorconfig, eslint, prettier, JWT, middlewares e mais.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eReact\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eNa seção básica de React JS, criaremos uma lista de tarefas utilizando class components e functional components (com classes e funções). Também utilizaremos o localStorage do navegador para salvar os dados da lista de tarefas, fazendo algo muito similar ao que faríamos com bases de dados.\u003c/p\u003e\u003cp\u003eNa seção avançada do React JS utilizaremos React Hooks, Redux + Redux Saga e muito mais. Também vamos consumir a API Rest que criamos em aulas anteriores. Criaremos um sistema de Login com JWT e o axios e faremos um CRUD (create, read, update e delete) na base de dados MySQL/MariaDB da nossa API\u0026nbsp;Rest.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eExpressões Regulares\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eVocê vai aprender a criar suas próprias expressões regulares (regex). Melhor que isso, você vai entender o que está fazendo com suas expressões regulares.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrincípios SOLID\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eO curso tem seções específicas sobre os pilares da programação orientada a objetos (POO) e \u003cstrong\u003eprincípios SOLID\u003c/strong\u003e (S.O.L.I.D), que são parte extremamente importante na formação de qualquer programador, independente da linguagem de programação escolhida.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eTestes com o Jest\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eTestes automatizados são de extrema importância para qualquer desenvolvedor. Abordaremos testes unitários e testes de integração utilizando o jest.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eDesign Patterns (Padrões de projeto)\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eUma outra novidade deste curso é que temos uma seção inteira sobre padrões de projeto (Design patterns). O foco aqui é aprender os padrões de projeto da GoF (que são os mais clássicos e mais relevantes atualmente).\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eListagem do conteúdo principal\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eLista do que será ensinado nas seções:\u003c/p\u003e\u003cul\u003e\u003cli\u003e\u003cp\u003eInstalação dos programas utilizados ao longo do curso (Node, Visual Studio Code e mais)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eJavascript básico (variáveis e coisas básicas de programação)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eJavascript com lógica de programação (estruturas condicionais, de repetição e mais)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eJavascript orientado a objetos (classes, funções construtoras, factory functions, e mais)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eJavascript funcional (seções específicas para funções, arrays e objetos)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eJavascript assíncrono (com promises, ajax, axios e fetch API)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eWebpack e Babel (para uso de recursos modernos em navegadores mais antigos)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eNode.js (básico de Node + Express e MongoDB)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eProjeto agenda (Um projeto real utilizando tudo o que foi descrito anteriormente)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eDeploy - Criar, configurar e manter um servidor Linux (inclui configuração de várias tecnologias diferentes)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eApi rest - Criar uma API Rest do zero usando Express, JWT e o Sequelize (com MariaDB/MySQL).\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eReact JS Básico - Nesta seção, criaremos uma lista de tarefas utilizando o React JS e o localStorage do navegador. \u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eReact JS Avançado - React Hooks, Redux + Redux Saga, Autenticação com JWT, Redux Persist e muito mais.\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eBônus: Expressões Regulares (Regex)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eTypeScript - Você não precisa comprar outro curso para aprender TypeScript\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003ePrincípios da programação orientada a objetos e princípios S.O.L.I.D (SOLID)\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eTestes automatizados com o Jest\u003c/p\u003e\u003c/li\u003e\u003cli\u003e\u003cp\u003eBônus: Padrões de projeto (Design patterns)\u003c/p\u003e\u003c/li\u003e\u003c/ul\u003e\u003cp\u003e\u003cstrong\u003eRecomendações\u003c/strong\u003e\u003c/p\u003e\u003cp\u003eRecomendo que o aluno conheça o básico de HTML e CSS para absorver melhor o conhecimento. (este curso não inclui HTML e CSS).\u003c/p\u003e\u003c/div\u003e\u003ch4\u003eWhat you’ll learn\u003c/h4\u003e\u003cul\u003e\u003cli\u003eJavaScript Básico, Funcional e Orientado a Objetos (ES6+, front-end e back-end)\u003c/li\u003e\u003cli\u003eTypeScript  - um superset do JavaScript com tipagem estática (front-end e back-end)\u003c/li\u003e\u003cli\u003eNode, Express, MongoDB e MySQL/MariaDB (Back-end)\u003c/li\u003e\u003cli\u003eWebpack e Babel (Front-end)\u003c/li\u003e\u003cli\u003eSistema de login com session (front-end e back-end)\u003c/li\u003e\u003cli\u003eSistema de login com JWT (front-end e back-end)\u003c/li\u003e\u003cli\u003eCriação de projetos com Node, Express e EJS (front-end e back-end)\u003c/li\u003e\u003cli\u003eConfiguração de um servidor Linux para Deploy (Ubuntu Server)\u003c/li\u003e\u003cli\u003eConfigurações de segurança para o servidor (SSH e TLS - Https)\u003c/li\u003e\u003cli\u003eUtilização de noSQL com mongoose (MongoDB)\u003c/li\u003e\u003cli\u003eUtilização de SQL com sequelize (MySQL/MariaDB)\u003c/li\u003e\u003cli\u003eCriação de API Rest com Node + Express + Sequelize (back-end)\u003c/li\u003e\u003cli\u003eReact JS com React Hooks + Redux com Redux Saga (front-end)\u003c/li\u003e\u003cli\u003ePrincípios da programação orientada a objetos\u003c/li\u003e\u003cli\u003ePrincípios S.O.L.I.D\u003c/li\u003e\u003cli\u003eTestes automatizados com o Jest\u003c/li\u003e\u003cli\u003eExpressões Regulares (Bônus)\u003c/li\u003e\u003cli\u003ePadrões de projeto - Design Patterns (Bônus)\u003c/li\u003e\u003c/ul\u003e\u003ch4\u003eAre there any course requirements or prerequisites?\u003c/h4\u003e\u003cul\u003e\u003cli\u003eConhecer HTML e CSS ajudará a fixar melhor o conteúdo\u003c/li\u003e\u003cli\u003eComputador ou Laptop com Windows, Linux ou Mac\u003c/li\u003e\u003c/ul\u003e\u003ch4\u003eWho this course is for:\u003c/h4\u003e\u003cul\u003e\u003cli\u003ePara aqueles que desejam aprender JavaScript Moderno (ES6+) do zero\u003c/li\u003e\u003cli\u003ePara desenvolvedores experientes que desejam aprimorar seu conhecimento em JS\u003c/li\u003e\u003cli\u003ePara desenvolvedores que desejam trabalhar com front-end e back-end (fullstack)\u003c/li\u003e\u003cli\u003ePara quem deseja aprender TypeScript\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"course-overview--grid-row--1nKqQ\"\u003e\u003cdiv\u003eInstructor\u003c/div\u003e\u003cdiv class=\"course-overview--wide--37Lev\"\u003e\u003cdiv class=\"instructor-profile--header-row--n0Prm\"\u003e\u003cimg alt=\"User photo\" aria-label=\"User photo\" class=\"user-avatar user-avatar--image\" data-purpose=\"user-avatar\" height=\"64\" width=\"64\" src=\"https://img-a.udemycdn.com/user/200_H/59453841_aec6_2.jpg\"\u003e\u003cdiv class=\"instructor-profile--title-wrapper--2V1u6\"\u003e\u003cdiv class=\"instructor-profile--title--1rlDt\"\u003e\u003ca href=\"/user/leticia-barbosa-silva-3/\" data-purpose=\"instructor-url\"\u003eLuiz Otávio Miranda\u003c/a\u003e\u003c/div\u003e\u003cp\u003eDesenvolvedor de Software\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003cdiv class=\"instructor-profile--social-links-row--14uvr\"\u003e\u003ca href=\"https://twitter.com/OtavioMirandaBR\" class=\"instructor-profile--social-profile-btn--fs2ve\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"\u003e\u003cspan aria-label=\"Twitter\" class=\"udi udi-twitter\"\u003e\u003c/span\u003e\u003c/a\u003e\u003ca href=\"https://www.youtube.com/otaviomiranda\" class=\"instructor-profile--social-profile-btn--fs2ve\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"\u003e\u003cspan aria-label=\"YouTube\" class=\"udi udi-youtube\"\u003e\u003c/span\u003e\u003c/a\u003e\u003ca href=\"https://www.otaviomiranda.com.br/\" class=\"instructor-profile--social-profile-btn--fs2ve\" target=\"_blank\" rel=\"noopener noreferrer nofollow\"\u003e\u003cspan aria-label=\"Personal website\" class=\"udi udi-globe\"\u003e\u003c/span\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv class=\"instructor-profile--description--vCsKv\"\u003e\u003cdiv data-purpose=\"safely-set-inner-html:trusted-html:content\"\u003e\u003cp\u003eTrabalha há mais de 12 anos com desenvolvimento de softwares para terceiros usando várias linguagens, libs e frameworks diferentes. \u003c/p\u003e\u003cp\u003eEspecializado em desenvolvimento web voltado para e-commerces.\u003c/p\u003e\u003cp\u003eAtua tanto em front-end quanto back-end.\u003c/p\u003e\u003cp\u003eAtuou no setor de provedores de internet, trabalhando com infraestrutura de redes (wireless, fibra óptica, cabeamento, etc...). No mesmo seguimento, também atuou na área de\u0026nbsp; administração de servidores Linux.\u003c/p\u003e\u003cp\u003eEstá em contínuo aprendizado.\u003c/p\u003e\u003cp\u003eAtualmente, mantem softwares próprios criados para terceiros e ensina o que sabe para outros desenvolvedores. \u003c/p\u003e\u003cp\u003eMúsico nas horas vagas.\u003c/p\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e\n\nSaiba mais em: [Udemy](https://www.udemy.com/share/1026xaBUUfdFpRRng=/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrehaguiar%2Fappnode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrehaguiar%2Fappnode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrehaguiar%2Fappnode/lists"}