NodeJS Tutorial and Projects Course
-
Introduction
-
Install
-
Node TutorialREPL0sCLI0sSource Code0sGlobals0sModules Setup0sFirst Module0sAlternative Syntax0sMind Grenade0sBuilt-in Modules Intro0sOS – Module0sPATH – Module0sFS – Module (sync)0sFS – Module (async)0sSync vs Async0sHTTP Intro0sHTTP – Module (setup)0sHTTP- Module (more features)0sNPM Info0sNPM Command0sFirst Packages and package.json0sShare Code on Github0sNodemon0sUninstall Package0sGlobal Install0spackage-lock.json0sImportant Topics – Intro0sEvent Loop – Info0sEvent Loopt – Slides0sEvent Loop – Code Examples0sAsync Patterns – Blocking Code0sAsync Patterns – Setup Promises0sAsync Patterns – Refactor to Async0sAsync Patterns – Node’s Native Option0sEvents Info0sEvents Emitter – Code Example0sEvents Emitter – Additional Info0sEvents Emitter – HTTP Module Example0sStreams Intro0sStreams – Read File0sStreams – Additional Info0sStreams – HTTP Example0sEnd Of Module0s
-
ExpressHTTP Request/Response Cycle0sHTTP Messages0sStarter Project InfoStarter Project Install0sStarter Overview0sHTTP – Basics0sHTTP – Headers0sHTTP – Request Object0sHTTP – HTML File0sHTTP – App Example0sExpress Info0sExpress Basics0sExpress – App Example0sExpress – All Static0sAPI VS SSR0sJSON – Basics0sParams, Query String – Setup0sParams0sParams – Extra Info0sQuery String0sAdditional Params and Query String Info0sMiddleware – Setup0sAPP.USE0sMultiple Middleware Functions0sAdditional Middleware Info0sMethods – GET0sMethods – POST (Setup)0sMethods – POST (Form Example)0sMethods – POST (Javascript Example)0sInstall Postman0sMethods – PUT0sMethods – DELETE0sExpress Router – Setup0sExpress Router – Controllers0s
-
Project Intro and Setup
-
Task Manager APIIntro0sSetup0sBasic Express Server0sGeneral Routes0sRoute Structure and Details0sgetAllTasks0sAll Routes0sPostman Setup0sREST0sMongoDB Intro0sAtlas Setup0sDB, Network Access and Connection String0sAdditional Info0sMongoDB Overview0sCRUD – GUI Example0sMongoose Info0sConnect To DB0sRefactor Connect0sENV VARS0sFirst Schema and Model0sCreate Task0sSchema Info0sBasic Validation0sTRY/CATCH Block0sgetAllTasks Controller0sgetSingleTask0sTwo Errors0sDelete Task0sUpdate Task0sAdd Front-End0sPUT VS PATCH0sResponse Types0sNOT FOUND0sAsync Wrapper0sCustom Error Handler0sCustom Error Class0sPORT Variable0sOutro0s
-
Store APIIntro0sSetup0sBasic Express App0sConnect To DB0sRouter0sPostman Setup0sEXPRESS-ASYNC-ERRORS0sProduct Model0sPopulate DB0sBasic Find0sQuery Params0sMongoose V6 Update0sRefactor to QueryObject0sCompany0sName0sSort – General Setup0sSort – getAllProducts Implementation0sSelect Option0sSkip and Limit – General Info0sPagination0sNumeric Filters – Setup0sNumeric Filters – Regex0sNumeric Filters – Complete0sOutro0s
-
JWT – BasicsIntro0sSetup0sControllers0sPostman Setup0sValidate Username and Password0sJWT – Overview0sJWT – Structure0sJSONWEBTOKEN Package0sSign JWT0sBearer Token – Overview0sSend Bearer Token0sCheck Auth Header0sVerify Token0sAuth Middleware Setup0sAuth Middleware Complete0sMore Error Classes0sStatus Codes0sMore Refactor – Complete App0s
-
Jobs APIIntro0sSetup0sControllers0sRoutes0sDatabase Connection0sUser Schema0sCreate User – Basic Setup0sError Checking – Controller Example0sHashing Password Info0sHash User Password0sMongoose Middleware0sGenerate Token – Controller0sGenerate Token – Instance Method0sJWT_SECRET and JWT_LIFETIME0sLogin Controller Setup0sCompare Password0sAuth Middleware – Setup0sAuth Middleware – Testing0sAlternative Code0sJob Model0sCreate Job Route0sGet All Jobs0sSet Token Dynamically in Postman0sGet Single Job0sUpdate Job0sRemove Job0sDuplicate Error0sCustom Error0sValidation Error0sCast Error0sSecurity Info and Packages0sSecurity Setup0sAdditional Info0sHeroku Update !!!0sHeroku Info0sDeploy to Heroku0sSwagger UI Info0sClone Existing Heroku Project0sExport Postman Docs0sAPIMATIC Info0sAPIMATIC Setup0sSwagger UI Editor0sAdd Swagger UI0sRender Signup0sGithub Repo0sRender Deployment0s
-
Jobster API (Extra Project)Intro0sSetup0sSpring Cleaning0sClient Folder0sSetup Front-End0sModify User Model0sModify Register and Login0sCreate Test User0sUpdate User – Setup0sUpdate User – Complete0sPassword “Gotcha”0sComplete Jobs CRUD Functionality0sFake Data – Mockaroo0sPopulate Database0sSearch Functionality – Intro0sSearch Input0sStatus and JobType0sSort0sPagination0sCheck For Test User in Auth Middleware0sRestrict CRUD to Test User0sAPI Limiter0sStats Intro0sShowStats Controller0sSetup Status Aggregation Pipeline0sRefactor Status Data0sSetup Monthly Applications Aggregation Pipeline0sRefactor Monthly Applications Data0sDeployment0s
-
File/Image Upload
-
Send Emails
-
Stripe Payment
-
E-Commerce APIIntro0sSetup0sBasic Express Server0sConnect To DB0sBasic Routes0snotFound vs ErroHandler Middleware0sMorgan Package0sUser Model0sValidator Package0sAuth Routes Structure0sPostman Environment Setup0sRegister – Initial Setup0sRegister – Unique Email0sUser Roles0sHash Passwords0sJWT Setup0sRefactor JWT Setup0sCookies Setup0sParse Cookies0sRefactor Cookies Setup0sSigned and Secure Flags0sLogin Route0sLogout Route0sCookies -Big Picture and “Gotchas”0sUser Routes – Structure0sUser Routes – Postman0sgetAllUsers and getSingleUser0sAuthenticate User – Setup0sAuthenticate User – Complete0sAuthorize Permissions – Setup0sAuthorize Permissions – Complete0sShowMe Controller0sUpdatePassword Controller0sCreateTokenUser Function0sUpdateUser Controller – FindOneAndUpdate()0sUpdateUser Controller – user.save()0sCheckPermissions Function0sAuth Complete0sProduct Model0sProduct Routes – Structure0sProduct Routes – Postman0sCreateProduct Controller0sRemaining Product Controllers0sUpload Image Controller0sReview Model0sReview Routes Structure0sReview Routes – Postman0sCreate Review Controller0sGet All Reviews and Get Single Review Controller0sDelete Review Controller0sUpdate Review Controller0sPopulate Method0sMongoose Virtuals0sAlternative Single Product Reviews0sRemove All Reviews0sAggregate Pipeline – Setup0sReset Database0sAggregate Pipeline – Atlas0sAggregate Pipeline – Review Model0sAdditional Group ID Example0sOrder Schema0sOrder Structure0sOrder – Postman Setup0sCreate Order – Check Product0sCreate Order – Complete0sAll Order Routes0sDocgen – Install0sDocgen – Create Docs0sSecurity Packages0sDeploy on Heroku0sSmall Fixes0sDeploy To Render0s
-
Auth WorkflowImportant InfoIntro0sSetup0sRegister Controller – Refactor0sLogin Controller – Refactor0sProper Verification Token0sVerify Email – Big Picture0sVerify Email Controller – Setup0sVerify Email Controller – Complete0sSend Email – Setup0sSend Email – First Part0sSend Email – Second Part0sFront-End and Origin Gotchas0sRefresh Token – Big Picture0sToken Model0sCreate Token in Login Controller0sSend Multiple Cookies0sCheck for Existing Token0sRefactor Auth Middleware – AccessToken0sRefactor Auth Middleware – RefreshToken0sFix Logout Functionality0sForgot/Reset Password – Structure0sForgot Password Controller0sSend Reset Password Email0sReset Password Controller0sHash Token0s
-
Practical TypescriptImportant Info !!!Course Intro0sTypescript Info0sUseful Info0sTemplate0sFiles and Folders0sBuild Step0sType Annotations0sType Interface0sFirst Challenge0sSetup Info0sUnion Type0sType : Any0sPractical Example0sChallenge – Union Type0sArrays0sChallenge – Arrays0sObject Fundamentals0sChallenge – Objects0sFunctions – Parameters0sFunctions – Returns0sType : Any Example0sChallenge – Functions 10sFunctions – Optional Parameters0sFunctions – Default Parameters0sFunctions – Rest Parameter0sFunctions – Void Keyword0sFunctions – Type Guards0sFunctions – Objects As Parameters0sExcess Property Check0sChallenge – Functions II0sType Alias0sType Alias – Additional Info0sChallenge – Type Alias0sIntersection Type0sComputed Properties0sInterface – Fundamentals0sInterface – Methods0sInterface Methods – More Options0sChallenge – Interface I0sInterface – Merge and Extend0sChallenge – Interface II0sInterface – Type Predicate0sInterface vs Type Alias0sTuple0sEnum – Fundamentals0sEnum – Reverse Mapping0sChallenge – Tuple and Enum0sType Assertion0sType – Unknown0sType – Never0sModules – Intro0sModules – ES60sModules – JS File0sType Guards – Typeof0sType Guards – Equality and “in”0sType Guards – Truthy and Falsy0sType Guards – Instanceof0sType Guards – Type Predicate0sType “never” Gotcha0sType Guards – Discriminated Unions0sGenerics – Intro0sGenerics – First Function and Interface0sGenerics – Promise Example0sGenerics – Create Array0sGenerics – Multiple Types0sGenerics – Type Constraints0sGenerics – Type Constraints Second Example0sGenerics – Default Type0sFetch Data – Basics0sFetch Data – Setup Type0sFetch Data – Gotcha0sZod Library0sDeclaration Files0sTS Config0sClasses – Intro0sClasses – Default Property0sClasses – Readonly Modifier0sClasses – Public and Private Modifiers0sClasses – Constructor Shortcut0sClasses – Getters and Setters0sClasses – Implement Interface0sTasks Project – Setup0sTasks Project – Useful Info0sTasks Project – Select Elements0sTasks Project – Submit Event0sTasks Project – Event Gotcha0sTasks Project – Add Task0sTasks Project – Render Task0sTasks Project – Local Storage0sTasks Project – Checkbox0s
-
Jest Testing with Typescript and Node.jsImportant Info !!!Course Intro0sCourse Requirements and Testing Info0sUnit Testing and Jest Info0sUnit Testing and Jest Info0sCourse Repo0sProject Setup : Typescript, Node.js & Jest0sTest File Location0sJest Syntax0sSUT and AAA0sUtils Tests0sClass Tests0sJest Hooks0sDummy Test Doubles0sGetting Started with Stubs and Fakes0sStubs and Fakes in Action0sRefactor Challenge0sUsing Spies in Jest with jest.spyOn()0sClearing and Resetting Mocks in Jest0sUserService Testing Setup : Spying with Jest Begins0sJest SpyOn in Action – Successful UserService Response0sSimulating Errors with jest.spyOn() in Jest Tests0sMocking Modules with jest.mock()0sMock External Third Party and Node’s Built-in Modules0sJest Error Handling : First Steps0sExploring Error Testing Strategies0sJest : Testing Custom Thrown Errors0sCatching Errors and Silencing Logs with Jest0sChallenge – Test Hashing Library0sWrite Tests0sTest Coverage0s
-
AWS CDK 2 with TypescriptImportant Info !!!Course Intro0sRequirements0sAWS Account0sSetup Budget and Choose Region0sCreate CLI UserConfigure User LocallyCreate First CDK ProjectCDK Boilerplate Project – OverviewS3 Service OverviewCreate S3 BucketDeploy First StackS3 Bucket Overview in AWS ConsoleRemoval Policy InfoTroubleshooting CDK ErrorsCreate Second S3 BucketProject 2 – IntroAWS Lambda InfoFirst Lambda FunctionLambda GUIAPI Gateway InfoFirst Gateway RoutePOST RouteMake RequestsCORS FixENV VariablesSecrets Manager InfoSecrets StackAccess Secret From Secrets ManagerProject 3 – IntroCreate LambdaCreate CDKDynamoDB InfoDynamoDB StackDynamoDB Logic – CRUDTest Endpoints and Front-EndProject 4 – IntroBuild StackUpload Image FunctionalityStore Product in DBTest Create ProductFront-EndGet All Products LambdaAllow Access To ImagesDelete Product LambdaTest LogicProject 5 – IntroProject 5 – SetupTest RouteSQS InfoQueue CDKQueue LogicBatch SizeDLQ
-
Practical Git and GithubImportant Info !!!Course IntroWhat is Git?Things We Will NeedGit Global ConfigGit General Concepts OverviewFirst Git ProjectModify ContentGit with VSCode GUINavigate Git Commit HistoryGit Add Explained and Repo Nesting PitfallsGit Commit Message TipsSection ChallengeGit BranchesMerge BranchesDelete BranchesRebase IntroRebase ExampleRebase and Merge with VSCode GUISection ChallengeLocal Git Config File and .gitignoreGit Stash IntroGit Stash ExampleGit Head and Reflog CommandGit Reset CommandRevert Staged and Unstaged Changes with Git Reset and CheckoutSection ChallengeGit Merge Conflicts : SetupGit Merge Conflicts : When MergingGit Merge Conflicts : When RebasingGit Squash CommitsGit Cherry PickSection ChallengeGithub IntroSetup SSH KeysCreate Our First Github RepositoryCreate Github Repository in VSCode and Host Github Repository on NetlifyCreate and Merge Our First Pull RequestChallenge – Second PRComplete Second PRGithub Section Challenge – First PartGithub Section Challenge – Second PartGit Push : Upstream Tracking and Remote Branch NamingGit Fetch when Cherry-Picking Remotes
-
Bonus
Welcome to NodeJS Tutorial and Projects Course.
I guess let’s start by answering the most pressing question first. What is a NodeJS? And even though there are plenty of good answers out there the one that I like the most is this one – “NodeJS is an environment to run Javascript outside of the Browser”. NodeJS was created in 2009 and it’s built on top of Chrome’s V8 Javascript Engine. As you are probably aware of, every browser has an engine, a tool that compiles our code down to machine code and Chrome uses one by the name of V8. Since the moment it was created, Node has evolved tremendously, and while there are many things to like about Node, some of the main ones are – large community, since that tremendously saves time on feature development, as well as the fact that with the help of Node, it’s never been easier to build Full-Stack Apps, since both Front-End And Back-End are built in one language, and you guessed that language is our beloved Javascript.
During the course we will cover following main technologies – NodeJS, ExpressJS, MongoDB, Mongoose, JWT and many smaller ones as well.
Course consists of
– Node Tutorial
– Express Tutorial
– Projects
– Task Manager API
– Store API
– JWT Basics
– Jobs API
– File Upload
– Send Email
– Stripe Payment
– E-Commerce API
– Email Workflow
What's included
- 59 hours on-demand video
- 9 articles
- Access on mobile and TV
- Certificate of completion