[Talk Guidelines](https://us.pycon.org/2023/speaking/talks/){:target="_blank" rel="noopener"}

[Submittals](https://pretalx.com/pyconus2023/me/submissions/38SUMK/){:target="_blank" rel="noopener"}

&nbsp;

## Title

  > Creating Web Applications Instantly with API Logic Server - create with one command, customize in your IDE

## Description

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

&nbsp;

### Overview

In this talk:

* You'll see 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 :trophy:

&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;

## 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

This will be 75% live demo, with slides for context and background:

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

* Create Codespace (5) - create Codespace, access in Browser

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

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

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

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

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

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

&nbsp;

## Requirements

An internet connection, though I can demo locally if that becomes a problem.