Artival data filter

Artival reached out to me, and they had a very specific issue. They have a database of more than 500 consultants (at the time of writing this).
Each of those those consultants has a lot of attributes which need to be filtered by (in which area each consultant has experience, how much experience etc..) Consultants have to fill out a form, made in RSForms Pro, in Joomla. The Artival team would then - individually - export all of the submissions in Excel, and then using
some filters they made themselves sort through the data. I was tasked to make this online.
I used Datatables to do the actual filtering, however, that was not the issue. RSForms saves in an interesting way. Every submission is stored in two tables. Table one has some basic data - WHEN it was sent, the form ID, IP address and such. NO actual data is stored here.
The actual data is stored in a separate table. Each field in the form is saved in one row in the table. For example - name. It is stored in, for example, row 54. Field value, field name, form ID.
All of this data has to be moved to one uniform table, which can then be loaded to the Datatable on the frontend. It also has to account for fields in the form which can be added later on
and also can be edited, and deleted.


All of this works! But there was more! More tables were also needed, and they all had to be linked together.
Table organizations is linked to projects (one organisation can have multiple projects)
Then, selected consultants - multiple consultants can work on multiple projects.
Everything is linked in PHP, using IDs of the selected consultants and projects. Furthermore, multiple users were needed, AND limit those users who can do what (user permissions). Some users can only acces some parts, and do certain things (like add new consultants, projects etc...)