@nick_mib We have two existing add-on products for Plone that allows users to create arbitrary forms in Plone. You can basically drag-and-drop form fields to create a form and then define post-submit actions (send an email, add form data to a CSV file, etc.).
I would suggest that you familiarize yourself with those existing add-ons:
The GSoC project would be to create an Angular 2 app that can be embedded into Plone that allows you to create forms via drag-and-drop. We would need a backend API on plone.restapi that supports that (I could help with that).
Feel free to ask further questions if you want.
@tkimnguyen @cewing does it make sense to create a separate thread for this in the forum?