
Introduction of what we are going to build in NodeJS (and React) together.
Verify your node version and install node if missing, then use npm to manage packages, initialize git, ignore node_modules, and create a basic package.json for the project setup.
Initialize your npm project, configure git user details, install express and babel as dev dependency for a modern rest api, set up body-parser, and choose tape as a test runner.
Install nodemon to automatically reload changes during development. Use it to avoid restarting the server after edits and add it as a development dependency.
Build a solid api architecture for a node js rest api, focusing on update logic, guard clauses, and v1 routes for get all, get by id, add, update, and delete.
Install helmet and PM package to secure Express apps by setting HTTP headers, then use helmet as middleware in the server and restart, verifying the API remains functional.
Learn to integrate the lightweight Pino logging library into a Node.js API, using a logger instance, info and error levels, and JSON-formatted logs for local and cloud monitoring.
Create a React client for the Node.js backend, set up with npm init, and implement user routes to call API endpoints like get all, get one, create, update, and delete.
Enhance the users list component by enforcing an object state, applying bootstrap container classes, and conditionally rendering city and country from each user, while renaming the component and aligning imports.
Discover how to style a React app with styled-components by installing the package, creating a global body color with createGlobalStyle, and toggling light and dark themes via props.
Set up routing for a React front end with react-router-dom v6, connecting the users list to individual views and adding a create user route.
Reorganize your React client into multi-tier layers by moving user components into dedicated services and user folders, establish a base API, and refactor for cleaner imports and async calls.
Implement a delete user feature in the React client by wiring a remove user component to API delete endpoint using Axios, with confirmation and toast feedback plus redirect after removal.
Concerning the Footer component, with `{{ span: 3, offset: 1 }}` on the `Col` React-Bootstrap component, need to use curly brackets twice, because we have an object, and an object is declared with curly brackets as well. It would be the same as doing
```
columnMdOptions = { span: 3, offset: 1 };
<Col md={columnMdOptions}>
</Col>
```
Refactor the users list into a reusable user card component, fix bootstrap row layout, and add margins to improve the UI for a clean backend REST API with Node.js.
Let’s test our backend JS functions by unit testing them with Ava test-runner.
Quickly learn the fundamental of building a robust RESTFul API with NodeJS based on an efficient N-tier architecture pattern, and then, see how to plug your API with a client which you will also learn how to build. A client built with the latest React and Bootstrap versions.
You will learn how to build a backend API from scratch and build a client that will speak to your API through HTTP protocol.
Communicate with your backend. HTTP and HTTP methods and codes.
How to validate the input data validation.
How to request some API endpoints easily
How to test your API gradually.
How to design a flexible and solid API architecture.
How to secure and optimize your API professionally (with the packages you absolutely need to know).
CORS on your API.
Building a client from scratch with React JS.
Calling the CRUD (Create-Read-Update-Delete) endpoints from your client.
How to document the API endpoints with JSDoc and OpenAPI.
And so much more will be covered in this course.
This JavaScript course will also cover some great packages that will change your life during the development of an API efficiently.
You will learn to create very easily a design in a matter of minutes, without any complicated CSS (just a few reusable components).
You will learn how to embrace your components with Styled-Components and understand the benefits of using it.
You will be able to add as many pages as needed in your React application thanks to React Router Dom.
At the end of this course, you will be comfortable enough to create an API from scratch by yourself, implement new endpoints, being comfortable with many packages (such as logging, rate-limiter, Yup schema validation, ...).
Icing on the cake, you will be confident to create a frontend client from scratch and use those endpoints to interact with the backend on your frontend JavaScript application.
At the end of the course, you will even learn how you can create different unit tests for your API.
You will be ready to start building any modern JavaScript web applications (API and/or client-side rendering) using NodeJS with ExpressJS and React.