Book Image

A Blueprint for Production-Ready Web Applications

By : Dr. Philip Jones
Book Image

A Blueprint for Production-Ready Web Applications

By: Dr. Philip Jones

Overview of this book

A Blueprint for Production-Ready Web Applications will help you expand upon your coding knowledge and teach you how to create a complete web application. Unlike other guides that focus solely on a singular technology or process, this book shows you how to combine different technologies and processes as needed to meet industry standards. You’ll begin by learning how to set up your development environment, and use Quart and React to create the backend and frontend, respectively. This book then helps you get to grips with managing and validating accounts, structuring relational tables, and creating forms to manage data. As you progress through the chapters, you’ll gain a comprehensive understanding of web application development by creating a to-do app, which can be used as a base for your future projects. Finally, you’ll find out how to deploy and monitor your application, along with discovering advanced concepts such as managing database migrations and adding multifactor authentication. By the end of this web development book, you’ll be able to apply the lessons and industry best practices that you’ve learned to both your personal and work projects, allowing you to further develop your coding portfolio.
Table of Contents (13 chapters)
Part 1 Setting Up Our System
Part 2 Building a To-Do App
Part 3 Releasing a Production-Ready App

Managing the app state

As with the backend, it helps to have models that represent the data used in the app. These models will validate the data, help the linters ensure that we are using the data correctly, and ensure that the correct types are used. We will also use the model to correctly convert to and from the JSON representation used to communicate with the backend API.

The to-do model needs to be constructed from JSON, based on what is received from the backend or from data that the user entered. Then, the model needs to output as JSON so that this output can be sent to the backend. In addition, the model should validate that the data it is constructed from is of the correct structure and convert types (i.e., from strings representing dates in JSON to Date instances).

We only need a model for to-dos in the frontend, and hence we need the following in frontend/src/models.ts:

import { formatISO } from "date-fns";
import * as yup from "yup";
const todoSchema...