I am going to make a website for a client that wants to be able to alter the site about every week (changing pictures and textual information mostly). It is for a restaurant and so the client wants to alter the menu and images on an almost weekly basis. I’ve always made my websites and web apps from a framework or from scratch and have never worked with a CMS, but would a situation like this warrant the use of a CMS? What are some other options?
Edit: I would really like a CMS to be a last resort option, but if it is most likely the best option I will use it.
3
A Content Management System
is what your customer wants. You’re asking if you should use a pre-built one or roll a custom solution of your own.
If your customer is not going to be writing blog-posts, a CMS system like drupal is probably overkill and unneeded complexity. So long as your website pulls the menu items from a central data store, it should work just fine.
You may save yourself a partial security headache if you avoid the CMS, and have the updates made via a seperate channel. A CSV or XML file with a folder of images would not be inappropriate, especially if the customer is familiar with Office software.
Conversely, if your customer wants to update via the web, a known CMS with a good security record may be a worthwhile pickup.
1
I agree with @DougM. It really sounds like your customer wants a CMS. I can sympathize with your hesitation to install a CMS. There is a lot to learn and to be responsible-for. Plus, since you are a programmer, the tempation to extend it will be very strong. Make sure you learn the CMS really well before you try to extend it (to avoid duplication).
The experience of installing and administrating a CMS will be really good for you and it will be great on your resume. In contrast, passing-up on this opportunity to gain the experience, would be unfortunate. As a programmer, you should feel honor-bound to learn new technologies, like this one. Plus, diversity of knowledge is a big step towards being qualified as a system architect.
As DougM stated, what your customer is looking for is a CMS. Although the requirements are simple, it can be quite time consuming to build it all from scratch. Here’s a list of some features you will need:
- website front-end
- session management (to log in to an admin interface)
- file handling or database connection
- security (in all of the above)
If you don’t have your personal code base for these things and don’t want to spend too much time with this website, consider using an existing CMS. It’s a lot easier and faster to implement. Also, as TimG mentioned, it’s an experience for itself.
On the other hand, if you invest some more time in this project, you can build your own CMS, which may save you time for future projects.