Leveraging gamification and game-based technologies for educational purposes