What you'll learn:
- Practice Test Driven Development in a real project from beginning to the end
- Learn the test runner, Jest and understand how to structure test modules
- Create a fully functional application with Express js
- Learn how to build a RestFul API
- Make your application configurable to work in different environments
- Make your application aware of user locale, and support internationalization, i18n
- Use Sequelize to connect the application to RDBMS like PostgreSQL and handle all database related operations
- Secure your application with common practices. Basic authentication, JWT and your custom token implementation
- Use javascript on server side with Node js
- Deploy the application to a VM in cloud
- Experience automated deployment by pushing a commit from your machine to Github. Github Actions will do the rest.
- Feel how the test driven development is giving confidence when refactoring, and deploying your application.
- User Registration with email verification flow, account activation
- Password Reset flow
Inthiscoursewewillbebuildingafullyfunctionalbackendservicewith expressof node js.wewillcallourapplicationashoaxify.
whilebuildingthisapplication,wewilllearn
howwecanbuildarestfulwebservicewithexpressjs,withallnecessaryfunctionalitieslikevalidation,internationalization,staticresourceserving,caching,jsonmanipulation,interactingwithexternalservices
howwecanhandledatabaseoperationswithormpackage,sequelize.
howwecanmanagedatabaseversionhistoryandmigrations
andwewillsee
howtestdrivendevelopmentworks.
howit's affectingourcodequality,reusability
howit'sgivingustheconfidenceaboutrefactoringourimplementation
howwecandeploytheapplicationtoheroku
howwecancreateaninstanceingooglecloudanddeployourapplicationtoit
andhowwecanautomatethedeploymentwithgithubactions.
Thiscourseispurelybuiltonpractice.Eachcodepiecewewrite,willbeforouractualapplicationimplementation.
Ineachsectionwewillgraduallybuildourapplication.Wewillnotjumpaheadandaddfunctionalitynotneededforthatmoment.Wewillimplementonerequirementatatime.Eachimplementationwillbringthenextrequirementtous.
And following this practice, will help you to get a solid foundation about overall rest web services requirements and how to implement one of them with node js by following test driven development methodology.