Laravel Duckform
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()
php artisan route:list
for entire list)
Routes (remember 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.