SurvLoop is an open data engine used to create, fill, and share complex databases.
Back in the day we created database tables, queries, forms, reports, and pages with Microsoft Access® (and probably today, but who would). This is a full content management system that can generate mobile-friendly forms as complex as TurboTax®.
Translating each data field's meaning (in English) as you build your database, means computer-friendly API data listings and schema can be auto-generated once you start collecting data.
Because the tools to create complex forms continue to become more useful, it was a logical next step to reuse them to generate complex pages for the rest of a website's main content. The basics needs are just about complete!
A lot of progress has happened in 2019! Hopefully by the end of 2021, almost all of the admin tools will be replaced with SurvLoop-generated forms, to also approach the status of a being self~replicating GUI!
A theme is branching trees, in many directions. Fractals are fun.
This started as a database design system developed to plan the OpenPolice.org web app. It was built to track through database specifications, even if the software hasn't been built out enough to automatically enforce the long tail of rules.
The app's co-creator Steve and I spent six months just designing the database of a few hundred possible questions which should probably be asked of victims of police misconduct. Once we finally had a grapple on what to ask, I started mocking up what the survey could look like.
But that too was complex enough that I incrementally started automating my survey mockup. Attracted to the usefulness of integrating a survey engine with the database design tools, and without significant funding for the project, I started building OpenPolice.org and SurvLoop.
I knew the data being stored would be more important than I'm used to, so knew I need to finally build atop a trusted coding framework. I chose Laravel based on advice of friends, and WOW I'm pleased with it!
The web app is now beta testing, and feedback on that project and the SurvLoop user experience can be via the end of the submission process:
The resulting database designed using the engine, as well as the branching tree which specifies the user's experience: /db/OP
Among other methods, the resulting data can also be provided as XML included an automatically generated schema, eg.