Say I'd like to let my users write reviews about restaurants. They can write a text about the restaurant, set the location, set a link to the restaurants homepage and give an overall rating.

They should choose form various tags, e.g. Kind of Kitchen (Chinese, French, American, ..), kind of restaurant (fast-food, Haute Cuisine, ..).

I know, maybe we should moderate these reviews in order to have valid data.

In the end it should be possible to things like these:

  • Show me all reviews of restaurant XYZ and the average rating.

  • Show me all reviews of restaurants in my City

  • Show me all fast-food restaurant reviews max. 5 miles away from me.

.. and so on.

These Reviews can have comments and likes (maybe dislikes also).

The navigation should be very intuitive. I’d prefer combining tags (in order to refine the search results) till you have the list you want over having a big search form.

My first thought was to build this on top of XenForo, but maybe there's a better solution.

The big plus of XenForo would be:

  • it has user management, text editor, likes – it’s like a CMS especially for forums.

  • it has tags, a rating API, and more things we would need.

  • apart form the reviews a classical discussion forum would be important to have (for threads like “What restaurant would you recommend in my City for birthday dinner next Friday?”)

So, my question is: On what CMS / Forum software should I start building the review app as an addon / extension?



I think that is a good case for the CMS Drupal. (Depending on which modules you need, it might make sense to use Drupal 7 instead of Drupal 8, because the latest version hasn’t so many modules yet.)

You create a content type for reviews (enable the Comment function) and add fields to it: a textarea for the text about the restaurant, a link field for the website URL, etc. For the rating, you could use the popular Fivestar module, but a simple select list field (included in core) might also work for you, especially if it’s only the author that rates it.

The tags also get added as fields. You create a taxonomy vocabulary for "Kind of Kitchen", "Kind of Restaurant" etc., and either add the tags (which authors can select) or allow free-tagging.

There are several modules that offer a liking/disliking feature (Like & Dislike, Like Button, Drupal like (Flag counter), Like/Dislike, …); as I never needed one, I can’t recommend any.

For querying the reviews, e.g., to show all restaurants with a specific rating in a specific location, you can use the powerful Views module. This allows you to create predefined pages for this, but you could also create a page with an exposed form (which would allow visitors to find restaurants according to their criteria).

For the separate discussions, you could use the core Forum module, and if you need more features, the Advanced Forum module.

The only thing that’s perhaps not so easy is "combining tags (in order to refine the search results)". There are several modules that allow something like this, but a recommendation would require a more specific description of the requirements.

  • Thank you for your answer! I have already worked al lot with Drupal 5 & 6 years ago and found is was very buggy. They just wanted to build a CMS "for everything" and that did not work IMHO. No experience with Drupal 7 & 8 yet.
    – agb
    Aug 8 '16 at 22:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.