Please use this identifier to cite or link to this item:
http://dspace.cityu.edu.hk/handle/2031/9218
Title: | Clash of Code: A live multi-player programming platform based on Docker and WebSockets to gamify programming |
Authors: | Choudhury, Unnat |
Department: | Department of Computer Science |
Issue Date: | 2019 |
Supervisor: | Supervisor: Dr. Chan, Mang Tang; First Reader: Dr. Lau, Rynson W H; Second Reader: Prof. Tan, Kay Chen |
Abstract: | As the pace of technology is accelerating at a unprecedented rate, more and more schools are incorporating programming lessons into students' curriculum at an early age. Programming is being considered an essential skill these days just like Mathematics. While there are multiple applications that provide a gamified systems for children to learn the concept of programming or provide users with a system to practice solving algorithm questions using specific languages, there aren't any applications on the market which combines the two needs of having a gamified environment to practice solving fun algorithmic logical questions often asked in technical interviews. The project aims to develop a system which gamifies solving such programming questions and is suitable for all ages. The system aims to enable users to compete against friends or strangers to solve programming exercises. Not only focusing on the gamification of coding, our system aims to support a community of programmers interesting in learning from others and at the same time teaching others by commenting and giving rating on each others code. The system contains an array of programming questions of varying difficulties which the user can solve by writing an algorithm which gives the correct output. The application mainly contains two modes, Practice Mode and Challenge Mode. The practice mode is the offline version of the game whereas challenge mode is suitable for users who are looking for a gamified environment to practice their skills. The challenge mode lets the user compete against others in real-time. In the Challenge Mode, two players are paired against each other. They are then given the same question to solve at the same time. The player who solves the problem faster than the opponent by producing the correct output wins. To achieve the desired goals, we have implemented a system which uses Docker, JavaScript Object Notation(JSON) Web Tokens, Node.JS, Passport.JS, MongoDB, React.JS and WebSockets. The system uses Docker to efficiently and securely run user input code on di↵erent containers so that the user code does not interact with our server at all. User authentication and sessions are handled by Passport.JS strategies specific for JSON Web Tokens. By successfully implementing the system, our platform could help many users to enjoy the process of solving problems using programming instead of thinking of it as an academic task. |
Appears in Collections: | Computer Science - Undergraduate Final Year Projects |
Files in This Item:
File | Size | Format | |
---|---|---|---|
fulltext.html | 147 B | HTML | View/Open |
Items in Digital CityU Collections are protected by copyright, with all rights reserved, unless otherwise indicated.