Hi,

I am trying to find out if Drupal would be an appropriate software framework to use in order to develop my web application. We have experience with Drupal but have used and customized it as a CMS system to roll out websites. It works well for us. However, this one is more of a web app so I'm not sure.

Here is a summary of what we need.

1. A third party authentication. This would need to integrate with Drupal.
2. Integrate with third party REST apis to fetch relevant data.
3. AngularJS frontend.
4. Mobile application built in Ionic.
5. A basic CMS system to configure installations for new clients
6. Fast deployment and production setup. ~ 2-3 deployments to production a day.
7. Test driven development - TDD
8. E2E and automated testing
9. Failure recovery & monitoring tools
10. AWS cloud support and integration.
11. Around 400 concurrent users.
12. Invoicing but not e-commerce. Rest API's to handle monitory transactions.
13. Caching mechanisms
14. Restricted access to some views/pages for the app based on the user type (returned by the REST auth api).
15. CDN connectivity
16. Basic SEO / URL-Rewriting.

Thanks

Should I use Drupal / Headless Drupal as a base framework for the above? What features will I get out of the box that I would not get if I went ahead with something like .NET framework or PHP Laravel?

Comments

Sam Moore’s picture

Well that's 20-30 hours of consulting right there, but you can have $.02 if you like.

1 - there are various authentication modules such as OAuth and commercial ones like Login radius (which I've used). You don't say what you're connecting with, but start there. You can at the very least use one of these modules to see how it's done.

2 - You can use a builtin mechanism like Feeds or write your own endpoint.

3 - there's a whole community around Angular in the Drupal world. Start by reading Dries' posts on headless Drupal and decoupling. Don't forget to render your pages on the server as well, or your SEO will tank.

4 - not sure what you're expecting here. Would you like Drupal to serve data to your Mobile app? It's going to be good at that. D7 yes, D8 more so.

5/6 - Do you need to spin up identical or similar sites? You could make a distribution (an installation profile). Or use Features, or... And also Devel Generate for dummy content, if you need that

7 - There's lots of support for testing, and some of it is in core. Start here: https://www.drupal.org/simpletest I know people are also working with Behat for BDD - ask around and you'll find the right folks.

9 - Isn't this more of a server admin/devops question?

10 - ditto. I've run Drupal on AWS; there are no issues that I know of.

11 - this will be down to your caching mostly (and speed of your DB, etc). Again, devops. Throw lots of resources at MySQL. Use opcode caching with gusto.

12 - You'll likely be writing a module here, but perhaps not.

13 - Drupal caches quite intelligently out of the box, but you can also deploy Memcache, APC (or the newer PHP opcode cache) and Varnish.

14 - Drupal is really good at access control; do some research on the contributed modules that extend the built in functionality.

15 - I've seen Drupal work well with Cloudfront; can't speak to others, but there should basically be no problem.

16 - Drupal excels at SEO. Install Pathatuo for starters.

What you get out of the box is a whole pile of work already done for you. You can always write your own bits in the places where there's a gap between requirements and contributed code; but most of the heavy lifting is done, tested, and supported by the community.

smaira’s picture

Thanks for your detailed reply Sam Moore.

I would like to discuss your question
Do you need to spin up identical or similar sites?

It's going to be exactly the same site with most of the content coming in from a third party api. So my concern here is should I be using Drupal at all? There isn't much content that we will host that needs management. Basic site configuration of course but that can also be done right in the DB or using a single page html client facing form.

I agree that Drupal has all the plugins I need to build and support this web app. But is that reason enough for me to use it? Why not just build my app in Symphony instead?

Sam Moore’s picture

Well perhaps you should. One question, though, is "How much control do you need to give to site owners/admins to let them do stuff without needing to write any code?". Drupal has a highly evolved admin interface.

By the way if all you're replicating is the codebase, git is your friend.

smaira’s picture

Not much control at all. They configure everything using a different software and the site will consume most of the content from API's linked to the software. The structure itself won't change at all.

Sam Moore’s picture

Well then you're right, you may be better off with a powerful and well-supported framework.

smaira’s picture

Okay. Thank you for all the help. Appreciate it.

FloydPierce’s picture

thank Sam Moore, I'm getting this issue. Now I have done.