tpenaranda/duckform

Laravel package to modelize Forms/Surveys and handle them using API endpoints.

v1.0.0 2019-12-01 03:28 UTC

This package is auto-updated.

Last update: 2024-04-04 10:18:54 UTC


README

Latest Stable Version Total Downloads License

Laravel package to modelize Forms/Surveys, save them into DB and handle them using API endpoints. There is a VueJS package to handle the FE side (see here). Check https://vue-duckform-demo.tpenaranda.com for a live version of the FE side.

Form schema is defined this way.

screenshot.png

Installation

Require package

$ composer require tpenaranda/duckform

Run migrations in order to create tables for forms schemas and user responses.

$ php artisan migrate

Seed DB with a sample form

php artisan db:seed --class TPenaranda\\Duckform\\Database\\Seeders\\DuckformSeeder

Alternatively you can use factories to generate random form.

php artisan tinker
>>> use TPenaranda\Duckform\Facade\Duckform\Duckform
>>> use TPenaranda\Duckform\Models\Form
>>> Duckform::factory(Form::class)->states('with-sections-with-questions-with-possible-answers')->create()

Routes (remember php artisan route:list for entire list)

Form objects (Form structure)
=============================
GET 'api/duckforms/' Get all Forms.
GET 'api/duckforms/{id-slug-token}' Get single Form.

FormSubmit objects (Data submitted for a Form)
==============================================
POST 'api/duckforms/{id-slug-token}/submits' Create a FormSubmit.
PATCH 'api/duckforms/{id-slug-token}/submits/{submitToken}' Modify a FormSubmit
GET 'api/duckforms/{id-slug-token}/submits/{formSubmitToken}' Get a single FormSubmit.
GET 'api/duckforms/{id-slug-token}/submits' Get all submits for a single Form.