Application Programming Interface for the Cloud-Based Management of Gamified eGuides
Abstract
:1. Introduction
2. Related Work
3. Problem Context
- Visitor account, providing authorization for eguide users;
- Tour organization, providing storage and access to the content defining the tour structure;
- Tour and user data, providing storage and access to information defining the lowest-level items of both the tour and eguide user portfolio;
- Quizzes and surveys, providing storage and access to the content of quizzes and surveys and handling responses;
- Team management, providing support for joining eguide users into teams, so that team quests can be solved and team achievements attained;
- Visitor Activity Tracking, handling events generated by eguide users and checking actions available for a specific tour element;
- Internationalization, providing functionality related to eguide internationalization.
4. Functional Coverage of the eMused.eu API
4.1. Visitor Account
4.2. Tour Organization
4.3. Tour and User Data
4.4. Quizzes and Surveys
4.5. Team Management
4.6. Visitor Activity Tracking
4.7. Internationalization
5. Implementation
6. Verification
6.1. Functionality
6.2. Performance
7. Conclusions
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
References
- Krosbacher, M. Authenticity and the Use of Multimedia at Cultural Tourist Attractions. Ph.D. Thesis, Technological University, Dublin, Ireland, 2010. [Google Scholar]
- Smartphone Ownership is Growing Rapidly around the World, but Not Al-ways Equally. Available online: https://www.pewresearch.org/global/2019/02/05/smartphone-ownership-is-growing-rapidly-around-the-world-but-not-always-equally (accessed on 2 February 2020).
- Tussyadiah, I.P. Technology and Behavioral Design in Tourism. In Design Science in Tourism; Fesenmaier, D.R., Xiang, Z., Eds.; Springer: Cham, Switzerland, 2017; pp. 173–191. [Google Scholar]
- Lee, B. The Effect of Gamification on Psychological and Behavioral Outcomes: Implications for Cruise Tourism Destinations. Sustainability 2019, 11, 3002. [Google Scholar] [CrossRef] [Green Version]
- Not, E.; Petrelli, D. Empowering cultural heritage professionals with tools for authoring and deploying personalised visitor experiences. User Model. User-Adapt. Interact. 2019, 29, 67–120. [Google Scholar] [CrossRef] [Green Version]
- Swacha, J. Architecture of a dispersed gamification system for tourist attractions. Information 2019, 10, 33. [Google Scholar] [CrossRef] [Green Version]
- Google Play Game Services. Available online: https://developers.google.com/games/services (accessed on 4 April 2020).
- izi.TRAVEL API. Available online: https://izi.travel/en/api (accessed on 4 April 2020).
- BalticMuseums: Love IT! Available online: http://bmloveit.usz.edu.pl (accessed on 4 April 2020).
- eMused.eu API. Available online: https://cms.quistorp.emused.eu/docs/ (accessed on 4 April 2020).
- TAP CMS Authoring Tools. Available online: https://github.com/IMAmuseum/tap-cms/wiki (accessed on 4 April 2020).
- Stein, R.; Proctor, N. TourML: An Emerging Specification for Museum Mobile Experiences. In Museums and the Web 2011; Archives & Museum Informatics: Philadelphia, PA, USA, 2011. [Google Scholar]
- Guidepost. Available online: https://gitlab.com/americanart/guidepost (accessed on 4 April 2020).
- Audio Guide Usage: IPhone Versus Android in 2018. Available online: https://izi.travel/en/blog/audio-guide-usage-iphone-versus-android-in-2018 (accessed on 4 April 2020).
- Paiva, J.; Leal, J.; Queirós, R. Gamification of learning activities with the Odin service. Comput. Sci. Inf. Syst. 2016, 13, 809–826. [Google Scholar] [CrossRef]
- Gamification Server. Available online: https://github.com/ngageoint/gamification-server (accessed on 4 April 2020).
- Phanzu, K.; Thévoz, A. Gamification API. Available online: https://aurelienthevoz.docs.apiary.io (accessed on 4 April 2020).
- Swacha, J.; Muszyńska, K. Towards a Generic eGuide Gamification Framework for Tourist Attractions. In Proceedings of the 2018 Annual Symposium on Computer-Human Interaction in Play Companion Extended Abstracts, Melbourne, Australia, 28–31 October 2018; ACM: Melbourne, Australia, 2018; pp. 619–625. [Google Scholar]
- eMused.eu. Available online: https://emused.eu/ (accessed on 4 April 2020).
- The OAuth 2.0 Authorization Framework (RFC 6749). Available online: https://tools.ietf.org/html/rfc6749 (accessed on 4 April 2020).
- Aleksic-Maslac, K.; Sinkovic, B.; Vranesic, P. Influence of gamification on student engagement in education. Int. J. Educ. Learn. Syst. 2017, 2, 76–82. [Google Scholar]
- Nicholson, S. A RECIPE for Meaningful Gamification. In Gamification in Education and Business; Reiners, T., Wood, L.C., Eds.; Springer: Cham, Switzerland, 2015; pp. 1–20. [Google Scholar]
- Swacha, J. Representation of Events and Rules in Gamification Systems. Procedia Comput. Sci. 2018, 126, 2040–2049. [Google Scholar] [CrossRef]
- Kulpa, A.; Swacha, J. Design and Implementation of Rule Execution Mechanism for an eGuide Gamification Web Service. In Information and Software Technologies; Damaševičius, R., Vasiljevienė, G., Eds.; Springer: Cham, Switzerland, 2019; pp. 173–181. [Google Scholar]
Name | Description | Endpoint |
---|---|---|
New User Registration | Create new internal user from the provided data | POST/api/user_profile/ |
User Sign-in | Verify authorization data and log user in. | POST/auth/token |
User Sign-in via social media | Verify authorization token and log user in. | POST/auth/convert-token |
User Sign-out | Log out the current authenticated user. | POST/auth/revoke-token |
User profile details | Retrieve the current authenticated user profile data (including achieved score, badges, items). | GET/api/user_profile/ |
User profile update | Update the current authenticated user profile data. | PUT/PATCH/api/user_profile/{id}/ |
Name | Description | Endpoint |
---|---|---|
Area list | List available active areas (detailed data included). Filter available. | GET/api/area/ |
Area details | Retrieve specific active area data. | GET/api/area/{id}/ |
Area type list | List available area types. | GET/api/area-type/ |
Area type details | Retrieve specific area type data. | GET/api/area-type/{id}/ |
Location list | List available active location (detailed data included). Filter available. | GET/api/locations/ |
Location type list | List available location types. | GET/api/locations-type/ |
Location type details | Retrieve specific location type. | GET/api/locations-type/{id}/ |
Route list | List available active routes (detailed data included). Filter available. | GET/api/route/ |
Route details | Retrieve specific active route data. | GET/api/route/{id}/ |
Route type list | List available route types. | GET/api/route-type/ |
Route type details | Retrieve specific route type data. | GET/api/route-type/{id}/ |
Site data | List active sites. | GET/api/site/ |
Name | Description | Endpoint |
---|---|---|
Badge list | List active badges (detailed data included). Filter available. | GET/api/badge/ |
Item list | List available active items (detailed data included). Filter available. | GET/api/item/ |
Item kind list | List available item kinds. | GET/api/item-kind/ |
Item kind details | Retrieve specific item kind data. | GET/api/item-kind/{id}/ |
Item type list | List available item types. | GET/api/item-type/ |
Item type details | Retrieve specific item type data. | GET/api/item-type/{id}/ |
Resources (BLOB type) | Retrieve specific resource file (if exists). | GET/private-media-api/{path} |
Name | Description | Endpoint |
---|---|---|
Quiz list | List available active quizzes (detailed data included). Filter available. | GET/api/quiz/ |
Quiz details | Retrieve specific active quiz data with questions. | GET/api/quiz/{id}/ |
Quiz fulfillment list | List the current authenticated user’s quiz fulfillments. | GET/api/quiz-fulfillment/ |
Quiz fulfillment details | Retrieve specific fulfillment data (with answers) of the current authenticated user. | GET/api/quiz-fulfillment/{id}/ |
New fulfillment of quiz | Save and return fulfillment data of the current authenticated user. | POST/api/quiz-fulfillment/ |
New answer to quiz question | Save, check answer and return response. | POST/api/quiz-answer/ |
Survey list | List available active surveys (detailed data included). Filter available. | GET/api/survey/ |
Survey details | Retrieve specific active survey data with questions. | GET/api/survey/{id}/ |
New fulfillment of survey | Save and return fulfillment data of the current authenticated user. | POST/api/survey-fulfillment/ |
New answer to survey question | Save, check answer and return response. | POST/api/survey-answer/ |
Name | Description | Endpoint |
---|---|---|
Team list | Retrieve current authenticated user teams list. | GET/api/team/ |
Team details | Retrieve data of specific team. including achieved score, badges, cards owned by members. | GET/api/team/{id}/ |
Team create | Create new team (name access code). | POST/api/team-create/ |
Team update | Update data of specific team. | PUT/PATCH/api/team-edit/{id}/ |
Team delete | Delete specific team. | DELETE/api/team-edit/{id}/ |
New membership | Add the current authenticated user to specific team. | POST/api/team-membership/ |
Name | Description | Endpoint |
---|---|---|
Action list | List active actions for the area/location/item. Filter available. | GET/api/actions/ |
Action details | Retrieve specific active action data. | GET/api/actions/{id}/ |
Event registration | Update data of specific team. Returns achievements data if achieved by this event (points, items, badges). | POST/api/events/ |
Events list | List the current authenticated user’s events with related achievements data (points, acquired items, badges). | GET/api/events/ |
Event details | Retrieve specific event data for the current authenticated user with related achievements data (points, acquired items, badges). | GET/api/events/{id}/ |
Name | Description | Endpoint |
---|---|---|
Language list | List defined languages. | GET/api/language/ |
Language details | Retrieve specific language data. | GET/api/language/{id}/ |
Country list | List defined countries. | GET/api/country/ |
User interface translation | List available UI translations. | GET/api/ui_translation/ |
Language list | List defined languages. | GET/api/language/ |
Technology | Files | Lines | Classes | Methods/Functions |
---|---|---|---|---|
Python | 165 | 12,991 | 666 | 420 |
JavaScript | 1 | 106 | - | 56 |
CSS | 1 | 78 | - | - |
HTML | 35 | 4213 | - | - |
Functionality | The Presented API | izi.TRAVEL API | Gamification API |
---|---|---|---|
Grouping routes (Area) | + | - | - |
Separate content for a route | + | + | - |
Defined locations | + | + | - |
Controlled access to eGuide content | + | + | - |
User profile and gamification achievements | + | - | + |
User event log | + | - | + |
Event-triggered rules | + | - | + |
Quiz | + | -(+) | - |
Survey | + | - | - |
Endpoint | Mean [s.] | Std [%] | Median [s.] | Min [s.] | Max [s.] |
---|---|---|---|---|---|
/api/actions/ | 0.077 | 9.000 | 0.074 | 0.068 | 0.089 |
/api/area/ | 0.065 | 14.210 | 0.061 | 0.056 | 0.085 |
/api/area-type/ | 0.054 | 28.790 | 0.049 | 0.039 | 0.090 |
/api/badge/ | 0.081 | 19.340 | 0.078 | 0.062 | 0.111 |
/api/country/ | 0.048 | 18.990 | 0.045 | 0.040 | 0.067 |
/api/item/ | 1.139 | 7.170 | 1.100 | 1.052 | 1.304 |
/api/item-kind/ | 0.051 | 31.140 | 0.041 | 0.039 | 0.086 |
/api/item-type/ | 0.051 | 31.350 | 0.042 | 0.040 | 0.095 |
/api/language/ | 0.050 | 15.360 | 0.046 | 0.042 | 0.065 |
/api/locations/ | 0.313 | 3.930 | 0.310 | 0.298 | 0.331 |
/api/locations-type/ | 0.049 | 13.450 | 0.047 | 0.041 | 0.058 |
/api/quiz/ | 0.127 | 5.490 | 0.124 | 0.119 | 0.141 |
/api/route/ | 1.424 | 5.430 | 1.393 | 1.382 | 1.651 |
/api/route-type/ | 0.045 | 17.260 | 0.040 | 0.038 | 0.059 |
/api/site/ | 0.065 | 21.870 | 0.058 | 0.053 | 0.092 |
/api/survey/ | 0.049 | 13.800 | 0.045 | 0.043 | 0.061 |
/api/team/ | 0.056 | 19.500 | 0.058 | 0.043 | 0.076 |
/api/ui_translation/ | 0.057 | 19.790 | 0.051 | 0.047 | 0.084 |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Kulpa, A.; Swacha, J. Application Programming Interface for the Cloud-Based Management of Gamified eGuides. Information 2020, 11, 307. https://doi.org/10.3390/info11060307
Kulpa A, Swacha J. Application Programming Interface for the Cloud-Based Management of Gamified eGuides. Information. 2020; 11(6):307. https://doi.org/10.3390/info11060307
Chicago/Turabian StyleKulpa, Artur, and Jakub Swacha. 2020. "Application Programming Interface for the Cloud-Based Management of Gamified eGuides" Information 11, no. 6: 307. https://doi.org/10.3390/info11060307