Challenge view
Back to ProjectOpenGuesser
A geographic #GLAMhack
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
- GeoAdmin API via OpenLayers
- Wikidata API
Team
- loleg
- @pa_fonta
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.
- Install Node.js http://nodejs.org/download/
- 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.