Skip to content

Content_Management_Systems

Maria Husmann edited this page Jul 30, 2024 · 1 revision

Database or content management system (CMS)?

In this module, you can choose to work with a content management system (CMS) or a database. Compared to a database (relational or NoSQL), a CMS already does a lot of work for us. It makes it easier to define our content (by providing a UI) and to add content without needing a lot of technical skills. It also provides help to manage media content such as images, which databases typically don't offer. CMS typically also offer functionality such as scheduling when content should be published, multi-language support or the option to save draft. A CMS helps us decouple content (texts, images, etc.) from code. Designers and developers can work independently and still work together. For more complex applications, it can make sense to use a database instead of or alongside a CMS.

We recommend the Contentful CMS in this class. Contentful is a headless CMS, which means that it only stores the content, but not the presentation. In a traditional CMSs like Wordpress we would also store presentation (templates) in the CMS. We don't do that in a headless CMS. Instead, the content is accessed over an API and we can choose our own technology to display it. In our case, we will use Vue.js for that.

Choose a CMS if

  • your end-users consume content, but don't create content
  • you create your content manually
  • you don't want to write backend code
  • you want to keep the complexity of your project low and/or you are a small team
  • your content fits well into the CMS model (text, images, articles, ...)

Choose a database if

  • your end-users or business logic create data
  • you want to bulk import lots of data
  • you are up for a technical challenge and want to write backend code

Your tasks

  • Do the tutorial Beginner's guide to Contentful.

  • Next in groups of 2-3 students, create a content model and content for the following requirements: Show the commute to HSLU of each team member. It should include at a name and photo for each person in the team, the location of the start and destination for each commute, and for each location a name and a photo. You can add more information if you want to. What content types do you need? Create the content types and add content for each member in the team. We will discuss your solutions in class.

  • Using the content delivery SDK, display the commutes of your team on a simple website. There is a sample solution here, but try first for yourself.

Resources

Getting started

Technical guides

Clone this wiki locally