Hello all,
I maintain a Typo3 site which includes functionality about managing members of a union. In a few words, the member logs in and can:
- Change their details (address, contact details, etc.)
- Look at their financial status, what they owe, their payments, etc.
- Choose to subscribe or unsubscribe from mailing lists
All these are implemented with a custom Typo3 extension. The various functionality is implemented with custom SQL queries in a separate from Typo3 database that holds the members' data.
However, lately there has been a need to enhance this functionality. So, I was thinking of moving this functionality out of the Typo3 system, since I am not very familiar at all with its API and its extension ecosystem. I could write a custom web app using the Yii PHP framework (I've done this before many times).
After discussing this with the union's board members , there was a suggestion about using a CMS (their first suggestion was Wordpress) that implements all these features instead of writing a custom web application. So, my question is: can Backdrop implement such functionality with the help of its modules (both core and third party)? I'm sure that Views covers the needed view functionality, but what about forms where the user can change their data? Don't forget that all these must read and write data from existing database tables.
Do you think this would be possible?
Comments
Hi lourdas_v.., Yes, backdrop is datacentric which means you can create very complex systems where one data type can be easily linked to another... The customer reporting via a system called "Views" is easy to create simple reports and/or pages... More complex ones does take a bit of practice, but here at Backdrop we are very friendly. You can jump on over to our Zulip chat channel or join the "Office hours" volunteers on a Wednesday to discuss your requirements in detail. I look after over 170 websites where over 70% are Backdrop and Drupal... the rest are custom and 17 Wordpress... While I support Wordpress, Backdrop is a far better option. Hope this helps.
Going by your brief description of the functionality, it appears to me to be a good case for using CiviCRM with Backdrop.
Backdrop CMS (and Drupal) are good choices for this type of application. I use Backdrop CMS almost exclusively to create web apps (rather than using it as a traditional content management platform). I've found that, while I could build my web apps from scratch using frameworks like Laravel, I like the fact that Backdrop offers a lot of "ready to go" things that would take more work and time with Laravel - for example all the theming and authentication layers, access control based on roles, etc. The Field API is also excellent - it provides a UI that allows you to extend your "entities" with additional fields (which have their own tables), takes care of all the database layer's joins etc., and provides specialized form widgets and display formatters for different types of fields (which can take multiple items).
Backdrop has excellent APIs. In particular I use the Field API and Form API a lot, and also rely on custom Entities quite a bit. In Backdrop lingo, "entities" are abstractions of database data. Entities are provided as instantiated PHP classes. Backdrop core provides 5 entity types: content (Node), Comment, File, taxonomy terms and user. All of them are "fieldable" - meaning you can add fields to them, and some are "bundable", meaning that you can create different "bundles" (e.g. "page", "card" and "post" are different bundles of nodes, and each can contain different attached Field API fields). Creating custom entities gives you a lot of flexibility about the type of data they represent. Custom entities integrate seamlessly with the Field API, and with Views (by using the contrib module Entity Plus).
That's the one sticky bit in this: to implement your site gracefully in either Backdrop or CiviCRM+Backdrop, you'll need to import your data into the data structures native to the CMS (or CRM). All the functionality you describe is well within the capabilities of either and the many supporting modules that exist for them.
I initially missed this:
This complicates things. If you want to move away from a custom solution, keeping the existing database tables will make that hard, and I'm not sure if you're gaining much.
Both Backdrop and CiviCRM have their own database tables, and could work with external data, but then you lose a lot of the benefits. So far I haven't heard that the requirements are much different from what a CRM would provide. I've built custom data applications using Backdrop but this one sounds like a good use case for CiviCRM. And you'd still get the benefits of the integration with Backdrop Views and Webform. You'd have to import the data into CiviCRM (using its import UI), and create Backdrop users for the members. It's typical use case for some of our clients.
But maybe there's some custom workflow that wasn't described above. So you may want to just play around with it.
Thank you all for your suggestions. Keeping the existing database tables is a must. So, I will probably follow the custom web application way.
Cheers.