## Description

This Tutorial introduces a meaningfully faster and simpler approach for building database web apps.

&nbsp;

### Overview

In this tutorial:

* You'll build a complete, multi-table database web app - built, run, customized in VSCode
    * You'll be able to use it tomorrow on your organizations databases
* You'll see several popular technologies in use (listed below)
    * You can explore these - running code, in a working project

&nbsp;

### What is API Logic Server?

API Logic Server is an open source Python system for creating __customizable database web app projects__ from a database:

* __API:__ endpoint for each table - filtering, sorting, pagination and related data access

* __Admin UI:__ multi-page / multi-table apps, with page navigations, automatic joins and declarative hide/show

__Projects are Customizable -__ use VSCode for  edit/debug

Declare **spreadsheet-like rules** for multi-table derivations and constraints, extensible with Python (key innovation)

&nbsp;

### Excellent Intro to Popular Technologies

This tutorial introduces other technologies you perhaps wanted to explore, with _running code_:

| Technology  | Used For    |
:---------|:-----------|
| __Python__  | Customization |
| __SQLAlchemy__  | ORM database access |
| __Flask__  | Web Framework |
| __VSCode__  | IDE |
| __Codespaces__  | Cloud-based Dev Container |
| __APIs__  | Networked database access |
| __Docker__ | *Isolated* Containers |
| __React-Admin__ | Simplified React UI framework |
| __Declarative__ | *What not how* |

&nbsp;

### Requirements

You'll need a laptop, and a GitHub account.  Your dev environment will *not* be affected.

&nbsp;

## Audience

This tutorial is for developers interested in database systems, and the technologies above.  Required background:

* Basic programming: `if/else`, parameterized function calls, `row.column` object access, and basic event oriented programming.  Python experience is not required.

* Some database: aware of tables, columns and foreign keys.

&nbsp;

## Outline

Short lectures, plus watch/do labs:

| Section  | Minutes | Contents   |
:---------|:-----------|:------------|
| __Introduction__ | 15 | Project origin |
| __Start Codespace__ | 15 | VSCode, _in your browser_ |
| __Create Project__  | 15 | Database pre-supplied |
| __Explore__ | 30 | API, UI |
| __Customize__  | 30 | * API: add endpoint<br>* UI: hide/show fields |
| ___Declarative_ Rules__ | 30 | Declare/debug |
| __Wrap__ | 15 (2.25 hours) | |

&nbsp;

## Text Outline

* Introduction (15 min) - why the project was created

* Create Codespace (15 min) - create Codespace, access in Browser

* Create API Logic Project (15) - use CLI to create project from pre-supplied database

* Explore Project (30) - explore the created UI, exercise the API in Swagger

* Customize Project (30) - use VSCode (in Browser) to add an API Endpoint and debug it, hide/show UI fields

* Declarative Rules (30) - use VSCode to declare spreadsheet like rules, and test/debug

* Wrap (15 - 2.25 hours) - final remarks, other topics to explore (testing, schema migration)

Yes, a lot to cover, but automation makes it possible.  Even easy.
