Childrenarewelcome

From semantic-mediawiki.org
Jump to: navigation, search
childrenarewelcome
Wiki of the Month August 2014
Image for childrenarewelcome
Statistics (2014/07/18)
Pages: 7674
Users: 20 (20 active)
Properties: 54
Categories: 100
Templates: 70
Forms: 10
Table of Contents

Childrenarewelcome is a site of child-friendly venues. It is effectively a social enterprise, hosting a combination of paying and free venues who want to market themselves to the child-friendly market in the UK, and in the future abroad.

Childrenarewelcome is built around Mediawiki 1.21.1 and uses SMW 1.8.0.4, which was a point that we found to be stable before continuing to make changes to skin and functionality. Users of the site will be largely unaware of the SMW in the background, but for us it has provided a great platform to build around.

The site has been under active development for two years and we began adding venues in April 2014. It is now "open for business", and we will continue to add venues. We have begun marketing and collecting our first clients and bloggers writing about their local area.

Background

We originally came up with the concept of the site some time ago but due to other commitments, development was very slow. However, work has been steady and finally we are there. The idea is to provide a site that allows users to search for child-friendly venues by entering a town into the search box at the top.

Part of the brief was :

  • registered users must be able to submit venues using a form
  • venues should use a standard template to achieve a clean look
  • no in-page advertising

We are providing a resource for parents to browse at any time that does not have a bias towards particular venues.

Search functionality

Search is geographical. By integrating the SMW geographical mapping capabilities with Google Maps in a slightly different way, users can search for any venue. There are some glitches outside of the UK, but fundamentally:

  1. A user enters a town name in the search box at the top of any page and selects the required town or address from the Google Maps API-driven dropdown.
  2. The wiki then searches to see whether a page already exists for that town and if it does it returns the relevant page.
  3. If a page does not exist, a new page exists containing information on the local area.
  4. New pages can be viewed by administrators and we can add more information if required.

So, for example, in the page about Galgate, Lancashire there is only general information, whereas the page about Bath contains much more precise information because we have chosen to add specifics and allocate a local blogger to keep the page updated.

The map parser function allows maps which have been specifically customised for the Childrenarewelcome system to be added to any page. These maps use the standard Google Maps API version 3 to create the map and then use Ajax requests to populate the map with markers for the locations registered in the wiki - either all the markers or a sub-set of them created by a query using SMW. The markers on the map show the address when hovering over them, or reveal a popup infobox containing more detailed information when clicking on them.

Initially the page loads and a map is created with no markers, so that no location information needs to be sent with the initial page load, as this can make the site very unresponsive if there are many locations on the database. After the page is ready, a Ajax request is made for the registered locations (or a filtered subset of them) and then this data is used to populate the map with markers. This data is very minimal containing only what's needed for the markers - coordinates, full title and attributes.

Another parser function, #closestvenues, has been created, which produces a list of the closest venues to the specified Location title, or to the current location if none is supplied.

Venues

Cawlayout.png

All "days out" (which can be museums, theme parks, nature parks, zoos etc.), restaurants and hotels use the same template to present information, in order to create an orderly look on the site, with an infobox and basic information displayed clearly. The form used to populate these pages designates categories based upon characteristics of "child-friendliness" such as "high chairs", "children's menu" etc. This feeds back into the geographical search so that in the pop-up icon on the maps, you can restrict searches to venues with high chairs, children's menus etc.

By using several blocks of text and guiding users to approximate number of characters, we can make sure that the text always wraps neatly to create a nice-looking page. Some examples of pages are this restaurant and this museum.

We aim to provide a fairly identical service to both paying and free venues - helping to market them to our parent followers on Twitter and Facebook as well as on the site. However, paying venues can also be added as "Favourites" if a user searches for a particular location.

Blog posts

Our blogging capability is simple but it works well. It allows registered users to write reviews of venues or products and "tag" them. We have replicated tagging in blogs by using SMW Categories. This is then utilised throughout the site, so on this page, the query is:

</nowiki>
{{#ask: [[Category:{{{StoreType}}}]] 
| ?Logo 
| ?Text 
| ?Imageurl 
| ?Image1 
|format=template
|order=random
|template=Brochurepurple
|searchlabel=}}
</nowiki>

The page itself defines the "Storetype" as "Books for Kids" and then queries a series of properties before putting the results into a template. Most sorts of pages within the wiki have a semantic property of "Logo" and "Text". These are used wherever we want to produce summary boxes.

Blog posts are all assigned to the category "Posts by {{{Username}}}", which then allows us to easily have SMW queries for particular users, as on this user page.

Sitemap

This file is generated daily by a cron job which requests the special page Special:ChildrenAreWelcomeSitemap and saves the output to the file sitemap.xml.

Caching

We also have a page with a list of all current articles that can be toggled on or off so that we can ensure that some articles are served more frequently than others.

Reception

We have had an amazing reception for the look and feel of the site and lots of interested clients and bloggers. We are very active on Twitter (@childrenuk) and have a Facebook page. Both are growing rapidly because SMW has allowed us to produce a highly intuitive system.

Extensions

The extensions in use are listed here and further detailed notes on development are here

Development

We would LOVE to hear suggestions for improvement. I think that our next step is a major improvement to SEO. We have great content but score very badly. If anyone has suggestions we would be glad to listen to them!

Credits

Development credit obviously goes to the SMW team for the background software and Aran Dunkley and Jack Henderson for taking the concept of SMW and extending it to provide an amazing user-friendly platform. Jack has run with the look and user-experience from design to usability and Aran's role has been focussed on the coding and some custom extension work, particularly on mapping and blogging.

Thanks also go to Jeroen and Yaron who acted as great sounding boards early on. And a hat tip to the team at Widgets for a truly useful extension that allowed us to implement DISQUS comments.

Please do have a look around the site and let us know any weak points. Most of it is locked down so you can't see the code but I am always happy to "give back" to SMW-world and offer pointers where I can in terms of coding used.