× This Challenge was posted 2 months ago

Challenge view

Back to Project

OpenGuesser

A geographic #GLAMhack

Demo

This is a game about guessing and learning about geography through images and maps, made with Swisstopo's online maps of Switzerland. For several years this game was developed as open source, part of a series of GeoAdmin StoryMaps: you can try the original SwissGuesser game here, based on a dataset from the Swiss Federal Archives now hosted at Opendata.swiss.

The new version puts your orienteering of Swiss museums to the test.

Demo: OpenGuesser Demo

Encouraged by an excellent Wikidata workshop (slides) at #GLAMhack 2017, we are testing a new dataset of Swiss museums, their locations and photos, obtained via the Wikidata Linked Data endpoint (see app/data/*.sparql in the source). Visit this Wikidata Query for a preview of the first 10 results. This opens the possibility of connecting other sources, such as datasets tagged 'glam' on Opendata.swiss, and creating more custom games based on this engine.

We play-tested, revisited the data, then forked and started a refresh of the project. All libraries were updated, and we got rid of the old data loading mechanism, with the goal of connecting (later in real time) to open data sources. A bunch of improvement ideas are already proposed, and we would be glad to see more ideas and any contributions: please raise an Issue or Pull Request on GitHub if you're so inclined!

Data

Team

OpenGuesser

This is a web game about guessing and learning about geography through imagea and maps, made with Swisstopo's GeoAdmin map of Switzerland.

After several years of development as a series of GeoAdmin Storymaps - try the original SwissGuesser game here - we play tested, forked and started a refresh of the project at #GLAMhack 2017.

We updated all library dependencies but got rid of the old data loading mechanism, with the goal of connecting (later in real time) to open data sources such as Wikidata/Commons.

A test is being done via the Wikidata Linked Data endpoint (see app/data/*.sparql), notably via datasets tagged 'glam' on Opendata.swiss for creating custom games.

There are a few other improvement ideas in mind already:

  • Redesign the frontend to improve aesthetics and usability.
  • Add a new title and tutorial, complete with loading sequence.
  • Difficulty levels.
  • Multiple guesses.
  • Cooperative play (e.g. ghost traces of a friend's guesses)
  • High scores.
  • Sound f/x!

..and we would be glad to see more ideas and any contributions: please raise an Issue or PR if you're so inclined!

Authors

A number of people have worked on this project at some point. Please see contributors of the original project in geoadmin/mf-swissguesser

Installation

The project is built with OpenLayers, jQuery and the Bootstrap framework, with a collection of tools powered by Node.js.

  1. Install Node.js http://nodejs.org/download/
  2. Install dependencies from the Node Package Manager (or Yarn, etc.) with this command at the project root:

npm install

This will install Grunt and Bower automatically. However, it is recommended that they are installed globally:

npm install -g grunt-cli bower

Run this command as root to use system-wide, or use the nave.sh utility for your local user.

Install dependencies

bower install

(or node_modules/.bin/bower install)

For generating documentation, the Pygments utility is required, which can be installed as indicated on the website or on Ubuntu/Debian systems as follows:

# sudo apt-get install python-pygments

Preparing translations

With a similar process, translations for this app are in a spreadsheet. Export to CSV and save the resulting file under `/app/data/i18n/translation.csv'. Then run:

$ node util/translationCSV.js

Compiling resources

To a local server watching for changes, and open a browser:

$ grunt server

To create a docs/ folder with HTML documentation, run:

$ grunt docs

See Grunt documentation and Gruntfile.js for other commands.

Deploying releases

First you need to build the Bootstrap framework. From the app/bower_components/bootstrap/ folder run:

bootstrap$ npm install

bootstrap$ grunt dist

Now you can build this project's distribution folder.

$ grunt build

Finally, zip up the dist folder and deploy it to the target host.

Documentation

See guesser and wms-custom-proj for a detailed code walkthrough.

For debugging the application, you can add &debug=true to the URL, which will include all images in the game instead of a random batch. The additional parameter &ix=5 would then jump to the 5th image in the sequence.

Licensing

The source code of this project is licensed under the MIT License.

This content is a preview from an external site.