
Maxim Golitsyn welcomes you to the React TypeScript course, sharing his web development journey since 2003 and promising practical skills to travel the world in just a few hours.
Configure your development environment by installing node.js, npm, Visual Studio Build Tools, Python 2.7, Postgres with pgAdmin, and git.
Create a PostgreSQL user and database using pgAdmin 4, assign login privileges, set a password, and designate the user as the database owner.
Configure the web app and server by setting env files, initializing git, installing dependencies, and running backend and frontend to create the first user and switch default admin to visitor.
Review the backend source folder, including the express server, socket io, and sequelize. Inspect package.json scripts for development and production, and note http only cookie authentication.
Explore the root backend setup, including eslint configs, gitignore, the express app, middlewares, routes, and a websocket chart server that emits live data every second using generated history.
Continue expanding the backend by detailing the www.js and passport.js setup, user authentication flows, session management, and comprehensive user model with queries.
Review the package.json to explore project scripts, build and test workflows, linting, and tooling integrations; learn how to run start, build, audit, and translate commands in a React TypeScript app.
Review root files such as .editorconfig, .env, .gitignore, and .prettieringnore, and explain the prettier configuration in .prettierrc. Open postcss.config.js and CSS nano, and stylus.config for rules.
Review jest.config options for a React TypeScript app, including rootDir, test environment, setup files, and transforms. Understand how module name mapper, test regex, and coverage thresholds drive testing.
Review the TypeScript configuration file, examining baseUrl, outDir, sourceMap, noImplicitAny, module, target, decorators, ES module interop, and module resolution. Learn how paths, lib, JSX, and include/exclude shape the frontend build.
Review the TypeScript lint configuration in tslint.json, including extends, node module resolution semantics, Airbnb rules, accessibility plugin, and turn off the import-name rule for .ts and .tsx files.
Explore how to configure webpack for a React TypeScript app, including dotenv integration, aliasing, ts loader, style loaders, and plugins for HTML, CSS extraction, and hot module replacement.
Explore the scripts folder, including fileTransformer.js for Jest, jest.setup.ts with a React 16 Enzyme adapter, resolve-ts-config-path-to-webpack-alias for aliases, and translate.js for English-to-Russian translation.
Explore the root src files, including index and service worker, configure i18n with backend language files, and set up axios, redux, and dynamic routes for a fast React TypeScript app.
Explore the src structure with assets, cache, helpers, and interfaces; learn to manage manifests, translations, and constants, and implement reusable cache and error handling in a React TypeScript app.
Expand the layouts directory by exploring main and minimal route templates, styling top bar and left sidebar, and integrating SEO, breadcrumbs, and translation hooks with Material UI.
Review the pages folder structure, where each page has its own route; learn naming rules: capitalize folder name, use component name as the folder, and decide on index exports.
Explore the store structure from store.ts to reducers, actions, and effects, including users, and learn redux dev tools, thunk middleware, and router history configuration.
Explore the core of stylus styles by expanding the base folder, importing Roboto and mixins, and applying the reset. Configure global CSS variables and animations, and redefine Material UI styles.
Explore the theme folder and index file to customize Material UI styling with css and css in js, redefining root properties, palette, typography, and Mui button styles.
Blocker shows a modal when leaving a page with dirty forms, using Redux isDirty checks to block navigation. The dialog uses Material UI slide and useTranslation for titles.
Explore how Breadcrumbs component builds navigational links from the current URL using a custom router link, translation hooks, and Material UI links, with the last link reflecting the current URL.
explore role-based access control in a react typescript app by defining RBAC rules with static and dynamic permissions, using the Can component and user edit form to grant access.
Open the colors component to see how it applies colors from the user state when defined, using the update colors function, and map new colors in variables to constants.
Learn how the form error component, located in the components folder, displays an error above buttons in forms and accepts optional class name and id with required text.
Explore form fields in components: checkbox, select, and text components; see props like color, id, input, name, label, meta, and on change, with aria-selected and role in Redux form.
Explore react typescript ui components: a loading indicator with Material UI linear progress, a no results text block, a route with layout wrapping components, and a section header with icon.
Explore the notification component, its @connect decorator, and how it displays translated error, success, and info messages using the translation function, state mapping, and a timeout-based hide flow.
Explore seo component, a function using react helmet and i18next to update the title and description as url changes with a language file and constants path, translation param and fallbacks.
Review dashboard page by inspecting a function component that renders a section header and a 'Can' component, with translated id, icon, text, accessibility role, and animation class for line chart.
Create a live line chart using web sockets and Plotly, handling resize with debounce to keep the interface responsive while streaming data in real time.
Explore the login flow in a React TypeScript app, including the login component and form, asynchronous submit, redux form integration, axios interceptor errors, translations, and redirect on success.
Explore the logout flow in a React functional component that uses useDispatch, useCallback, and useEffect to trigger logout, handle server responses, and reload Redux state to reach the login page.
Explore the Not Found Page React function component handling a URL not found due to a wrong link or typo, using useTranslation and a Material UI Button.
Navigate the sign up flow in a React TypeScript app, with a sign up form for username, email, password, and confirm password, validated and submitted asynchronously, with axios interceptors.
Explore the users page that retrieves users from state, passes them to the table, and fetches data with axios cancel tokens and debounced search. Learn how the component handles mounting, refreshing, row clicks to edit pages, accessibility attributes, and advanced table features like sorting and stable order.
Explore the user edit flow in a React TypeScript course, wiring fetch user by ID and save user with redux forms, color defaults, and view-edit toggles.
Pre-requirements:
An experienced React Developer familiar with TypeScript, or an Angular developer with basic React knowledge or a developer who can fluently use google to understand technologies.
Node.js >=10, PostgreSQL 11, Python 2.7, node-gyp and Desktop development with C++ (all links and instructions are provided within the course), Git.
The course contains production and mobile ready React application for a large project, dirty backend on Node.js and PostgreSQL database for store users and sessions.
I'm going to show you how to cook:
✅ One of the best architectures for React.
✅ Redux + React hooks (you should use Redux in 2019 for best performance).
✅ Login, registration, logout and check authentication flow (administrators can drop session for the target user).
✅ Security authentication using http only cookie.
✅ Universal error handlers for request/response. Errors are shown for fields, forms, connection. Written once. Use anywhere.
✅ Form validators (i18n support).
✅ Dynamic breadcrumbs. Inserted once. Working anywhere you wish.
✅ Internalization (multi-language support). Your customers will be thankful for concern. Conquer different markets now.
✅ Permissions (static and dynamic) based on roles and access rights.
✅ User search and User Edit Page (for admins, self-edit for moderators).
✅ A11y ready. Try to use without a mouse. It's possible.
✅ SEO module for different titles and descriptions in the app. Just add text for new page, not more action required. i18n support.
✅ Universal UX guard. Your users will not lose important changes in forms. Site prevents internal and external navigation while there are some changes in fields.
✅ Live color changer. Every user can use their own colors.
✅ Right way to Cache data in Redux.
✅ Live chart with real-time data using Plotly and WebSockets.
✅ Cancel http request that you want.
✅ Jest, Enzyme configuration.
✅ Webpack for development and production (with chunks and optimizers).
✅ TSconfig (and cheat: write your aliases in one place, they will be applied to Jest and Webpack).
✅ Cache using Service Worker.
✅ Jest and Enzyme with TypeScript test examples (basic; how to mock redux, test axios, mount and shallow, work in progress).
All components are written the way that they are inserted in one place and work everywhere.
You will see how to type functions, components, wrappers, axios, redux-forms and etc.
Be smart, be passionate, be happy!
Save up to 4 months of development with this course!
I’m going to update this course.
Just message me what you want to know.
My ideas:
- User self-edit page.
- Handle on backend and show on UI unhandled phrases in i18n (if you forget to translate something).
- Edit page for languages.
- What is Idempotency and why we should use it in our app.
- Add support for oldest browsers.
- Infinite table/scroll.
- Dynamically add field in form.
- Collapsed menu (children support)
- Monorepo.
After 100 000 a new course will be developed:
How to create safe backend using Node.js or Golang.
Notice:
You get the finished application and concentrate on the processes. The lecturer explains what the thing is and how it works.
My main task is that you can start doing the right things as soon as possible.
Video: 1920x1080 (Full HD)
Lexicon: simple English.
Our goal is to be understood by the whole world.
There is a killer feature of this course.
You can contribute to this React course!
Your name will be in the title of the lecture, as well as at the beginning of the video with your github page.
How is it possible?
See the chapter: “How to contribute?”