StepOne's Project Ingress
A configuration based Form Builder
- Docker and docker compose are pre requisites for the setup.
- Run
git clone https://github.com/projectstepone/Ingress
andcd Ingress
- Run
docker-compose up --build
to generate the image and run the container - Navigate to localhost:3001 for accessing via php my admin
- Use the same credentials to login as specified in the docker-compose.yml file
-
Currently, the following UI types for answers in the form are supported:
- short_answer
- paragraph
- radio
- multiple_choice
- dropdown
-
We are looking to further support the following datatypes in the future:
- Date
- Time
- Currently, the only type of validation that is supported on the client side is
required
. - We are looking to support the following types of validations in the future:
- String
- Number
- Possibly some from Validatorjs
- When adding the schema to the DB via PHP my Admin GUI, ensure that the schema schema column in the formConfiguration table is escaped.
- Currently the supported workflow is to add the form submission to a kafka queue. The configuration for the kafka queue needs to be specified in the docker-compose.yml file.
- There exists a sample schema for the form at sample2.json. It is present at
client/src/config/sample2.json
- The default route (/) on the frontend leads to Project Stepone's website. The only routes supported on the frontend are of the format /form/UUID.
- Each form is identified by a UUID and each user is identified by their email.
What is the structure of the database ?
- users
- password
- isActive
- isAdmin
- formConfiguration
- formConfigId
- schema
- created_by
The initialization script for the application can be found under backend/db/scripts
They are to be run in ascending order of their prefixed number.
What is the scope of this project ?
Ingress aims to be a schema based Form and webhook creator. One should be able to create customizable forms and APIs; all by specifying a configuration. The entire scope of the workflows to be supported post submission of forms are yet to be decided. Immediate requirements are to support addition to Kafka queue to support statesman.Which endpoints are available?
-
/config/id
Where id is the UUID for the form If the form does not exist, the backend returns an empty array
-
/form/id
Where id is the UUID for the form
A URL bearing UUID for which a corresponding form does not exist and all unspecified URLs lead to a 404 Page.