Book Image

Angular 6 for Enterprise-Ready Web Applications

By : Doguhan Uluca
Book Image

Angular 6 for Enterprise-Ready Web Applications

By: Doguhan Uluca

Overview of this book

Angular 6 for Enterprise-Ready Web Applications follows a hands-on and minimalist approach demonstrating how to design and architect high quality apps. The first part of the book is about mastering the Angular platform using foundational technologies. You will use the Kanban method to focus on value delivery, communicate design ideas with mock-up tools and build great looking apps with Angular Material. You will become comfortable using CLI tools, understand reactive programming with RxJS, and deploy to the cloud using Docker. The second part of the book will introduce you to the router-first architecture, a seven-step approach to designing and developing mid-to-large line-of-business applications, along with popular recipes. You will learn how to design a solid authentication and authorization experience; explore unit testing, early integration with backend APIs using Swagger and continuous integration using CircleCI. In the concluding chapters, you will provision a highly available cloud infrastructure on AWS and then use Google Analytics to capture user behavior. By the end of this book, you will be familiar with the scope of web development using Angular, Swagger, and Docker, learning patterns and practices to be successful as an individual developer on the web or as a team in the Enterprise.
Table of Contents (14 chapters)

User profile with multi-step auth-enabled responsive forms

Now, let's implement a multi-step input form to capture user profile information. We will also make this multi-step form responsive for mobile devices using media queries.

  1. Let's start with adding some helper data that will help us display an input form with options:
src/app/user/profile/data.ts
export interface IUSState {
code: string
name: string
}

export function USStateFilter(value: string): IUSState[] {
return USStates.filter(state => {
return (
(state.code.length === 2 && state.code.toLowerCase() === value.toLowerCase()) ||
state.name.toLowerCase().indexOf(value.toLowerCase()) === 0
)
})
}

export enum PhoneType {
Mobile,
Home,
Work,
}

const USStates = [
{ code: 'AK', name: 'Alaska' },
{ code: 'AL', name: 'Alabama' },
{ code: 'AR...