Thinking of creating a multi-user gallery - some questions about skeleton code

I’m interested in building a Gallery application that allows user login and posting and removing of images, that would be displayed on each users page. Cake PHP was recommended.

Though this is premature, the idea is to make this for a very large user base. So for example, I would not want to put a years effort of development into a simple application that would be eventually easily outgrown. This is why Cake PHP was recommended (fancy term - scalable). I have very little experience in this, so I am not sure what question to ask relating to developing such a web application, so I’ll continue to describe it and ask a simple one liner at the end. The other necessary function is for each user to have a profile and a settings, where additional (undecided features) could be enabled and disabled. The next to last feature that is a must is a file upload and download section, where pre-packaged art packs in zip files could be uploaded and downloaded and perhaps other files. The last part is very premature also, but the idea is to initially create this web application and if the cicumstances are right, add a paid subscription service. Now that last part is too complex for me, so the only thing I would like to know, is how easy is it to add something like that after a web application is completed. I believe even though it is subscription, it is called e-commerce? Not sure about that, but that’s the last but maybe most important feature. Will I have to pre-plan or make considerations of that before I get to that point, or is it something that can simply be plugged in later.

So the one liner question is this - Is Cake PHP the right framework for me?

Other than that, I would be very happy with as many additional input or remarks about such a web application as anyone can suggest.

Thank you,

ps: I am now going through the bookmarks tutorial and I have a local webserver, php mysql installed and the setup was incredibly simple. Very well written tutorial.

I’d base that decision on three factors.

  1. Do you know PHP.
  2. Are you familiar with MVC.
  3. Are you comfortable with ORMs.

If the answer is yes, then yeah, Cake will do what you want pretty easily. If the answer is no, I’d run that via Wordpress or something, and just buy the appropriate plugins (Gallery, Woocommerce, etc…).

One of the great things about CakePHP is that it not only makes things easier for development, but also teaches you a lot of the best practices while doing so.

But starting a big project with CakePHP is a long-term investment. If you don’t see yourself doing a lot of PHP coding in the future, then yeah, a CMS might be the better choice.

Although you should also check out systems other than WordPress (ProcessWire and ModX are well suited for these types of Apps, but there’s probably not a plugin for everything like in WordPress).

If you go with CakePHP, you have the most amount of flexibility even though it takes time to learn.
The best approach in my opinion is to take some time to plan everything out at the beginning, even features you may only need much later. Especially when it comes to structuring your DB tables. Make sure there won’t be limitations or conflicts later on.

Other than that, it’s usually not a problem at all to add a subscription feature later on, or any of the other features you mentioned.

OK, the general consensus, seems to be - put in the time. I fully agree, and I was not clear about my specific goal. It is to develop the said web application, one way or another. So, I will certainly put in the effort. I have a programming background, but I don’t have time in with PHP, which I’m getting into now. At the same time, then I think what you guys are saying is that CakePHP is in fact the perfect framework for this.

I guess the next step is to start some other questions on getting up to speed with the components.

For what I said in the initial post, does anyone have a link to some good tutorials. I will of course scan through the CakePHP documents and finish the tutorial, but maybe there are some good 3rd party applications with examples to learn from.

A pretty good example app that can be used as a reference is https://github.com/Xety/Xeta