exp: structure project for higher level tools

Factor out the content code from the supporting editor. The next step is
to derive the visual CMS editor from the content codebase. In theory the
system will work like this:

A user would edit the view functions in src/Components/* with a Figma style
editor and write the changes back to the source Elm file.

A second tool will inspect the source directories looking for modules
that expose (route: astrid-pages/core/Astrid.Pages.Route). It will allow
a user to visually define and edit routing rules that decide which
module should handle each request. This tool compiles the routing rules
and source files into a standalone binary.

A third tool will generate a visual CMS that modifies the view functions
of each route to insert clickable targets on components. These targets
will open database record editor modals for the rows that generated that
specific HTML. This is achieved by engineer cooperation via annotations
rather than static analysis. This visual CMS can hot reload itself when
the view functions are changed by the first tool.

A fourth tool will generate an AirTable style database editor from the
type definitions found in src/Database/* modules.

The automated operation of these tools allows a non technical user to
edit the appearance and data of a website in cooperation with software
engineers define the data structures. The simple nature of Elm prevents
the engineers from being so creative the tools cannot understand what is
going on. And Elm checks the work of non technical contributors for any
conflicts with the engineers' design.
This commit is contained in:
YetAnotherMinion 2022-01-05 00:09:16 +00:00 committed by nobody
commit e90a0b62a6
Signed by: GrocerPublishAgent
GPG key ID: D460CD54A9E3AB86
6 changed files with 739 additions and 0 deletions

14
lib/sql/LICENSE Normal file
View file

@ -0,0 +1,14 @@
astrid-pages/sql provides limited sql capability for a proprietary Elm interpreter
Copyright (C) 2022 Tom Chapman, Peoples Grocers LLC.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, only version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.