Discover the current landscape of full-stack development and how to leverage modern web technologies for building production-ready React.js applications to deploy on AWS
▶Book Description
React sets the standard for building high-performance client-side web apps. Node.js is a scalable application server that is used in thousands of websites, while GraphQL is becoming the standard way for large websites to provide data and services to their users. Together, these technologies, when reinforced with the capabilities of TypeScript, provide a cutting-edge stack for complete web application development.
This book takes a hands-on approach to implementing modern web technologies and the associated methodologies for building full-stack apps. You'll begin by gaining a strong understanding of TypeScript and how to use it to build high-quality web apps. The chapters that follow delve into client-side development with React using the new Hooks API and Redux. Next, you'll get to grips with server-side development with Express, including authentication with Redis-based sessions and accessing databases with TypeORM. The book will then show you how to use Apollo GraphQL to build web services for your full-stack app. Later, you'll learn how to build GraphQL schemas and integrate them with React using Hooks. Finally, you'll focus on how to deploy your application onto an NGINX server using the AWS cloud.
By the end of this book, you'll be able to build and deploy complete high-performance web applications using React, Node, and GraphQL.
▶What You Will Learn
-Discover TypeScript's most important features and how they can be used to improve code quality and maintainability
-Understand what React Hooks are and how to build React apps using them
-Implement state management for your React app using Redux
-Set up an Express project with TypeScript and GraphQL from scratch
-Build a fully functional online forum app using React and GraphQL
-Add authentication to your web app using Redis
-Save and retrieve data from a Postgres database using TypeORM
-Configure NGINX on the AWS cloud to deploy and serve your apps
▶Key Features
-Understand the architecture of React and single-page applications
-Build a modern Web API for your SPA using Node.js, Express, and GraphQL
-Gain a clear and practical understanding of how to build a complete full-stack application
▶Who This Book Is For
The book is for web developers who want to go beyond front-end web development and enter the world of full-stack web development by learning about modern web technologies and how they come together. A good understanding of JavaScript programming is required before getting started with this web development book.
▶What this book covers
- Chapter 1, Understanding TypeScript, explains what TypeScript is and what makes it ideal for use in large application development.
- Chapter 2, Exploring TypeScript, dives deep into TypeScript. We'll explore its features, including static typing, and why these features are an improvement over JavaScript. We'll also look at application design with object-oriented programming and how TypeScript features enable this important programming paradigm.
- Chapter 3, Building Better Apps with ES6+ Features, reviews the important features of JavaScript that every developer needs to know. We'll focus on the latest features added in ES6 and beyond.
- Chapter 4, Learning Single-Page Application Concepts and How React Enables Them, explains how websites are built and focuses on single-page application-style apps. We'll then introduce React and how React is used to create a single-page application.
- Chapter 5, React Development with Hooks, dives deep into React. We'll learn about the limitations of the older class style of writing React applications, as well as learn about Hooks and functional components and how they are an improvement on the older class style.
- Chapter 6, Setting Up Our Project Using create-react-app and Testing with Jest, describes the modern methods used for developing React applications. This includes the standard for creating React projects, create-react-app, and client-side testing with Jest and testing-library.
- Chapter 7, Learning Redux and React Router, covers Redux and React Router to help us build our React application. These two frameworks have been the go-to frameworks for managing state and routing almost since React's inception.
- Chapter 8, Learning Server-Side Development with Node.js and Express, covers Node and Express. Node is the underlying runtime that makes JavaScript server apps possible. Express is the framework around Node that makes it easy to build powerful server-side apps using Node.
- Chapter 9, What is GraphQL?, reviews what GraphQL is and how it uses data schemas to help build a web API.
- Chapter 10, Setting Up an Express Project with TypeScript and GraphQL Dependencies, explains how to create a production quality, server-side project using TypeScript, Express, GraphQL, and Jest for testing.
- Chapter 11, What We Will Learn – Online Forum Application, discusses the application we will be building. We will review its features and how building such an app will help us learn about web development in more detail.
- Chapter 12, Building the React Client for Our Online Forum Application, explains how to start coding the client side of our application with React. We will use functional components, Hooks, and Redux to begin building our screens.
- Chapter 13, Setting Up Session State Using Express and Redis, explores what session state is and how to create a session for our server using Redis, the world's most powerful in-memory datastore. We also begin coding our server using Express.
- Chapter 14, Setting Up Postgres and Repository Layer with TypeORM, explains how to create a database for our application in Postgres and how to access it using a powerful design technique called Repository Layer.
- Chapter 15, Adding a GraphQL Schema – Part I, begins the integration of GraphQL into our application. We will build our schema and add our queries and mutations. We will also begin adding our GraphQL Hooks to our React frontend.
- Chapter 16, Adding a GraphQL Schema – Part II, completes our application by finishing the work of integrating GraphQL into both our client and server.
- Chapter 17, Deploying an Application to AWS, takes our finished application and deploys it to AWS cloud services. We will use Ubuntu Linux and NGINX to host our server and client code.