polyapp

module
v0.0.0-...-646b7d3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2021 License: MIT

README

Polyapp: Free, Business Oriented Form Builder

Polyapp is a powerful, business-oriented form builder. You can try building a form on the public instance - your browser will authenticate you and then refresh automatically.

Quick Links

Documentation and Video Tutorials.

Godoc.

MIT License.

Security Advisories, License Analysis, and Dependencies.

We also use the vulnerability scanning provided by Gitlab (a set of static analysis tools) to identify and resolve potential vulnerabilities.

Use Cases

  • Polyapp is extremely flexible. You can use it to create a minimum viable product for any type of form based software.
  • Polyapp lets you change workflows without talking to a developer, so business departments which need forms to collect data like purchase requests or requests for time off can create those forms themselves.
  • Polyapp records users as they move through the system. This makes it work well when you need an audit trail of work or to track employee productivity, as with repetitive, form-based tasks which process some structured data.
  • Polyapp's forms are easy to modify, and you can call external code too. This makes Polyapp a great way to display data retrieved from a 3rd party API and view that data. If the 3rd party API changes, removing a field or adding a new one, it is a simple matter of updating your own form to mirror the API changes.
  • Polyapp scales well when many documents are being edited at the same time, but does not support collaboration - more than one person in one document. This means it works well for collecting data from company-wide surveys or being a form linked from your website. It does not work as a Word or Google Docs replacement.

Limitations

Only up to date versions of Chrome, Edge, Safari, and Firefox are supported. Internet Explorer, Samsung Internet, and other browsers are not supported.

Functional limitations have Issues associated with them in Gitlab.

Get Started

You can use the public instance to experiment with Polyapp: https://polyapp-public.appspot.com/

Documentation and Video Tutorials.

To set up your own instance please follow the Installation Guide

Developing with Polyapp

Developing with Polyapp has 3 steps:

  1. Install Polyapp into your own Google Cloud Project.
  2. Create Task(s), Chart(s), and Table Report(s) which meet your needs.
  3. All custom code / behavior should be done with Microservice Bots. See a complete video tutorial explaining how to create these here.

To understand Polyapp on a technical level you should read DESIGN.md.

Contribute

Contributions are welcome. The only rules for contributions are that they must follow "Effective Go" and they must work. Please read DESIGN.md to get a general overview of the project and its packages.

Directories

Path Synopsis
package Actions was created to house all Action code.
package Actions was created to house all Action code.
Package allDB rests just above the CRUD layer which is a series of packages handling different databases and caches.
Package allDB rests just above the CRUD layer which is a series of packages handling different databases and caches.
cmd
defaultservice
Command polyapp is the main service for Polyapp.
Command polyapp is the main service for Polyapp.
initGCP
command init uses the Firebase REST API to set up a new Firebase program programatically Documentation for REST APIs: https://firebase.google.com/docs/projects/api/workflow_set-up-and-manage-project
command init uses the Firebase REST API to set up a new Firebase program programatically Documentation for REST APIs: https://firebase.google.com/docs/projects/api/workflow_set-up-and-manage-project
serviceworker
Command serviceworker is Go code compiled to WASM which can respond to requests you might normally make to a web server.
Command serviceworker is Go code compiled to WASM which can respond to requests you might normally make to a web server.
Package common holds structures and data which are common across all databases and architectures (JS / Server).
Package common holds structures and data which are common across all databases and architectures (JS / Server).
Package elasticsearchCRUD provides APIs for storing and retrieving objects from Elasticsearch and searching among those objects.
Package elasticsearchCRUD provides APIs for storing and retrieving objects from Elasticsearch and searching among those objects.
package fileCRUD contains APIs for CRUDing objects to and from a local filesystem using JSON.
package fileCRUD contains APIs for CRUDing objects to and from a local filesystem using JSON.
package firestoreCRUD contains Firestore-specific code which can CRUD objects from the Firestore database.
package firestoreCRUD contains Firestore-specific code which can CRUD objects from the Firestore database.
Package gen is a solution to the problem: How do you create HTML code dynamically?
Package gen is a solution to the problem: How do you create HTML code dynamically?
Package handlers can compile to both WASM and any server-side compilation target.
Package handlers can compile to both WASM and any server-side compilation target.
Package idbCRUD is a JS-dependent package which performs CRUD operations on the IndexedDB.
Package idbCRUD is a JS-dependent package which performs CRUD operations on the IndexedDB.
Package integrity constitutes the 'Validation and Integrity library'.
Package integrity constitutes the 'Validation and Integrity library'.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL