Set version to 5.53.0
[civicrm-core.git] / ext / afform / README.md
1 # Form builder (afform)
2
3 ![Screenshot](docs/sandbox/3-Free-Blocks-Parent.png)
4
5 The Affable Administrative Angular Form Framework (`afform`) is a system for administering AngularJS-based forms
6 in CiviCRM which:
7
8 1. Allows developers to declaratively define a canonical, baseline form using AngularJS.
9 2. Allows administrators (or administrative GUI tools) to use the CRUD API to customize the forms.
10 3. Allows developers (or administrators/tools) to embed these forms in other CiviCRM-AngularJS apps.
11 4. Allows developers to apply change-sets via hook. (*WIP; pending upstream support*)
12
13 This extension is a proof-of-concept. It aims to demonstrate the core model/concept -- however, there are
14 [known issues and additional components](docs/roadmap.md) to address, and some documentation will be easier to approach
15 if you already have a basic understanding of CiviCRM API and AngularJS. It is licensed under [AGPL-3.0](LICENSE.txt).
16
17 ## Requirements
18
19 * PHP v7.2+
20
21 <!--
22 ## Installation (Web UI)
23
24 This extension ships with core and when it matures will eventually
25 be enabled by default on new installs and at some point required.
26
27 ## Installation (CLI, Zip)
28
29 Sysadmins and developers may download the `.zip` file for this extension and
30 install it with the command-line tool [cv](https://github.com/civicrm/cv).
31
32 ```bash
33 cd <extension-dir>
34 cv dl org.civicrm.afform@https://github.com/totten/afform/archive/master.zip
35 ```
36 -->
37
38 ## Installation (CLI, Git)
39
40 Sysadmins and developers may enable afform via the UI extensions page or
41 install it with the command-line tool [cv](https://github.com/civicrm/cv).
42
43 ```bash
44 cv en afform
45 ```
46
47 ## Developer Documentation
48
49 * [Quick Start: Creating the canonical definition of a basic form](docs/quickstart.md)
50 * [Writing Forms: Afform as basic AngularJS templates](docs/writing.md) (With example: *Contact Record*)
51 * [Embedding Forms: Afform as reusable building-block](docs/embed.md) (With example: *Contact Record*)
52 * [Form CRUD: Updating forms via programmatic API](docs/crud.md)
53 * [Form Hooks: Updating forms via declarative selector](docs/alter.md) (*WIP; pending upstream support*)
54 * [Full AngularJS: Integrating between Afform and vanilla AngularJS](docs/angular.md)
55 * [Roadmap and Known Issues](docs/roadmap.md)
56 * [Philosophy, Beliefs, Assumptions](docs/philosophy.md)