tpenaranda/duckform

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


Keywords
form, survey, laravel, typeform, duckform, forms, vuejs
License
MIT

Documentation

Laravel Duckform

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.

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.