
Walk through building and testing React components, implement login flows with tokens and a logged-in user context, and use MSW to create testing utils for private cloud and public cloud.
Learn to set up a Fastify Node.js application from download to running, including npm install, creating package.json, building a server, registering routes, and enabling logging.
Learn how to set up ESLint for Fastify Node.js, enable syntax checking, enforce code quality with the Airbnb style guide, prefer CommonJS require/export over import/export, and prepare for Prettier formatting.
Learn to install and plug in the jest eslint plugin, add it to your project dependencies, and run commands to ensure no errors and proper linting in your fullstack setup.
Batect allows you to define your development tasks (building, running, testing, linting and more) in terms of one or more Docker containers, run those tasks quickly and consistently everywhere, and easily share them with your team.
Develop a fastify plugin to apply postgresql migrations on app startup, with production gating, logging, and reporting of applied migrations, and register the plugin to manage the database.
Create and test the first fastify post route by wiring environment-aware config, validating env vars, defining a root-level post handler, inserting data into Postgres, and validating responses with Postman.
Learn to persist a PostgreSQL database by mounting a host volume to a Docker container, map data directories, restart the services, and verify data retention.
Learn how to set up a Fastify post route integration test using docker containers, a dedicated test database, and isolated test data to verify 201 created responses.
learn to run get route integration tests against a real postgres environment, balance end-to-end and unit tests, and verify a 200 response for a get request.
Discover how to define a JSON schema for a product object with id, name, and price, detailing properties, types, and required fields to validate data and describe outputs.
Define a request body schema with JSON schema, enforce required fields like title, and validate nested objects; extend with a response schema to support Swagger generation.
Configure a Batect task for continuous integration by adding scripts, running tests in the correct mode, and integrating migrations, environment variables, and open-handle detection to ensure reliable CI workflows.
Deploy a fastify app to Heroku using a docker container, including creating a dockerfile, building the image, logging into the Heroku container registry, and pushing the image to deploy manually.
Demonstrates setting up continuous deployment with GitHub Actions, building and pushing a Docker image to a registry, and deploying to Heroku using environment variables and secrets.
Create a user API with a user table migration script and schema, defining id, first name, middle name, last name, password, email, created_at, updated_at, and tests.
Design a user service with get user by id and save user functions, using a mocked repository for unit testing in isolation under TDD.
Test user endpoints end-to-end with Postman, creating a user via post request and verifying retrieval from the database, while adopting TDD and integrating pipelines for a green build.
Build a job service with save and get jobs using TDD, mock the job repository, and format dates with moment to return transformed job data.
Learn test-driven development of a job posting route in a fastify node app, with a post handler, mock job service, and tests for valid payloads and a future expiry date.
Install Material UI, icons, skeleton loader, and the Roboto font to style the React app, then build a reusable layout and a header component that renders children.
Integrate a job slice into a React Redux app by wiring the store, provider, and dispatch, and use selectors, useEffect, and filters to fetch and render jobs.
Understand how browser security blocks cross-origin requests and why the CORS issue matters. Learn to resolve it by registering a CORS declaration and installing a small package.
Develop a React job loading skeleton using Material UI skeletons to display title, description, and date placeholders during pending requests, mirroring a job list item.
Learn to implement a load more button in a React job listing page, using limit and offset, fetch more jobs, show a loading skeleton, and disable the button when appropriate.
Learn to test a job container by mocking API calls with msw and defining rest handlers. Configure server with before all and after each to simulate loading and verify loader.
Learn to write unit tests for a React job list using MSW to mock API responses, generate snapshots, and verify content with getByText.
Configure and deploy a React app to Heroku using GitHub Actions by managing tokens, secrets, and environment variables, building, pushing Docker images, and enabling automatic deployment.
Implement a Material UI snackbar to display login errors using alert and severity, wiring state and on close handlers, and customize position with anchor origin for top center.
Master register form validation in React using a validation schema and Formik to enforce required fields, valid email, and minimum password length, with error messaging and tests.
Build a user reducer with Redux Toolkit to handle registration form submission using Axios to call the endpoint, manage pending/fulfilled/error states, store user data and id, and navigate on success.
Display the currently logged-in user in the header and provide a logout link using the user context, icons, and history-based navigation. Protect listing routes by redirecting unauthenticated users to login.
If you know the basics of Javascript, NodeJS and React, the next thing to do is learn how to setup enterprise level application and how to do test driven development and how to write clean code and What is the ideal workflow for developing full stack application.
Why am I focusing on Test driven development ?
Because TDD is a way to develop highly usable software. Following the TDD process, a developer must focus on the test cases before actually coding anything. ... As a result, the developer is more interested in the interface than in the implementation—and that leads to more usable software
In this course we will learn various things as mentioned below:
How to setup actual enterprise level workflow with CI/CD using Github Actions and deploy both application to Heroku and locally we will connect NodeJS application with Postgresql docker container and on prod we will connect with Postrgresql.
How to deploy both frontend and backend on server.
How to maintain different environment like DEV,PROD.
How to maintain database migration script and apply on Postgresql
How to document rest api with swagger.
How to write Unit and Integration testcases for NodeJS application.
How to write Unit testcases for Redux side.
How to write Unite testcases for React.
How to secure application with JWT
Learn How to setup Jwt based authentication with NodeJS and React
The most important thing that we will learn during this course would be test driven development with NodeJS and React & redux and while developing application we will learn best practice for frontend side and backend side.
Last and not least we will write production level code not less than that.