Learn to develop enterprise applications with a relational database back end, a Java Spring Boot webservice middle tier and an Angular/Typescript client user interface app. This introductory course demonstrates building out a complete 3-tier application operating upon one single database table; then designing and building an increasingly sophisticated schema of tables and views for a demo Aviation scheduling app. Future advanced courses based on this one will flesh out the webservice and client UI apps to operate upon all of the tables in the demo app schema and navigate their relationships: Identifying and non-identifying foreign keys; One-to-many (1:M) and Many-to-Many (M:N) relationships; associative/cross-reference entities; set-based business rules. This course assumes some basic knowledge of Java, HTML and SQL but will take you from Zero on Spring Boot, Maven, Angular/Typescript, ER/Studio and PostgreSQL. The course is evolved from my 2012 book “Java Web Database Application Development” and is based on nearly 30 years of real-world, hands-on professional experience. It is the course I WISH I could have taken when I needed to learn this stuff. TOPICS INCLUDE: Demo App: FBOAce Aviation Scheduling SystemSpring BootSpring Boot 101 / Hello WorldMaven 101H2 In-memory databaseJava Persistence API (JPA)Data Model Entity Beans, a.k.a. Data Transfer Objects and JPA AnnotationsWebservice architecture: Components (Controllers, Services, Repositories)Inversion of Control, Dependency Injection, AutowiringJSONPostmanException HandlingInput validationClient UI HTML independent of technologyAngular/Typescript: Angular 101 / Hello WorldNode, npm, Angular cling serveModules and componentsEssential Angular directories, files and/or components: src/main. ts, src/index. html, src/app/app-module. ts, src/app/app. component. ts/html/cssTypescript imports, @NgModule, export class, @Component decoratorCalling webservices with HttpClientStrict ModeReading Configuration Parameters (from json file)Data Types, Modifiers and Scopeconstructor() and injectionClass MethodsngOnInit() and other Lifecycle methodsTypescript Data Types (most common): Primitives, Arrays, Objects (instances of Classes or Interfaces), any and unknown, EnumsExplict vs. Implicit Declarationsasync, await() and PromiseData binding: 1-way, 2-wayStructural Directives: *ngIf (boolean), *ngFor (loop)Routing: , ActivatedRoute, the routerLink DirectiveString interpolationProperty BindingEvent BindingThe Home component and application componentsListing instances of business entities / database recordsTemplate-based forms: Editing and submitting instances of business entitiesObservablesAsynchronous programingPromises and Observable. toPromise()Local ReferencesPostGreSQL 101InstallationUsing PgAdmin to navigate databases, schemas, tables, views and moreUsing psql (command-line tool)Application data queries and metadata queriesCasE sEnsiTIVity in PostGreSQLExecuting DDL to create schema objectsPostgreSQL PL/pgSQL Programming: Trigger functions and triggers that call the functionsInstead-of triggers on API ViewsRelational Database Design, Theory and PracticeSchema Design (for complete/advanced demo app) and SQL DDL (data definition language statements)Logical and Physical Data ModelsER Studio DemoAttributes/ColumnsPrimary keys, alternate unique indexesIdentifying and non-identifying relationships/foreign keysOne-to-many (1:M) and Many-to-Many (M:N) relationships; Associative/cross-reference entitiesMultiple relationships between/among the same entitiesSuper unique keysSQL data typesSet-based business rule facilitation and enforcementDatabase (API) views and the driving tableAnd more!