FIWARE Tour Guide Application
This repository is now archived. Since this application was created, a series of self-contained tutorials on each generic enabler have been created and are maintained separately for NGSI-v2 and NGSI-LD.
- The Step-by-Step Tutorials Complete collection of tutorials for the FIWARE ecosystem for NGSI-v2 developers
- The Linked Data Tutorials Complete collection of tutorials for the FIWARE ecosystem for NGSI-LD developers
More links and information can be found within the FIWARE Catalogue
FIWARE Tour Guide App was a Node.js sample application used in the FIWARE Tour Guide to show real code working with the Generic Enablers integrated.
This application is a smart, context-aware application which allows to manage large Restaurant chains which are operating worldwide. Is intended to both franchise managers and to customers. To this aim, the main functionalities provided by the application are:
- Admit Customer reservations
- Register customer reviews
- Real-time control of different parameters at each restaurant location (temperature and humidity)
- Restaurant geo-location
- Short time historic data of the different parameters monitored
- Publication of open data concerning the most relevant information about the different restaurant locations, grouped by different properties
Table of Contents
- Architecture
- How to build and install
- User and Programmers Manual
- API Overview
- End to End tests
- Feedback
Architecture
It includes (for the moment) the following components:
- Orion Context Broker, providing the NGSIv2 interfaces.
- Backend Device Management - IDAS, to connect IoT devices (temperature & humidity).
- Cygnus for the Cosmos ecosystem to give persistance to the context data (using its sinks).
- Authorization PDP - AuthZForce, to get authorization decisions based on authorization policies.
- PEP Proxy - Wilma, to add authentication and authorization security to the application.
- IDM KeyRock, covering the user profile management, authorization and authentication among others.
How to build and install
This project integrates a set of Generic Enablers using those enablers inside docker containers. It also comes with restaurants, reviews and reservations loaded to start working out of the box, as well as users and organizations to play with it.
For that purpose, docker and docker-compose are required.
Installation and Administration Guide
Detailed information of how to start this environment can be found here.
Deploying on a Cloud Fiware Lab Instance
You can deploy an instance of the Fiware TourGuide App in a cloud instance using Docker-machine. Detailed information of this process can be found in the following documentation:
User and Programmers Manual
The complete user guide of this environment is available at Readthedocs.
Miscellaneous configuration
How to configure a Context Provider in Orion
Here you can find a simple example of how to configure a Context Provider using Orion.
How to configure Cygnus in TourGuide
As Cygnus can publish in several third-party storages, here we explain where you should add your credentials for each source to publish the TourGuide data.
How to generate a new restaurant data image
The image provided is based on Euskadi Open Data information. The image is already loaded, but we provide information on how to generate it yourself.
How to run Feeders for the data image generation
Find out how to load information into a new image using the Tourguide feeders.
How to retrieve an Oauth Token to use the API
Every TourGuide API request must be authenticated. For that purpose, we provide a simple script to generate an Oauth Token based on a username and password of the preloaded data.
API Overview
The application provides a RESTful API with different routes and functions that covers the functionalities described above:
End to End tests
To run the end to end tests, you will need to first download the repository, then browse to server
folder and run:
$ npm install
$ grunt
Grunt will run jshint
and jscs
linters as well as start a full TourGuide
environment and run the End to End jasmine-node tests.