Back to projects
Group Project2026

Design and Implementation of CodeQuest: An Interactive, Multi-Language Coding Learning Platform for Children

Group 9 CPE 508COMPUTER SCIENCE AND ENGINEERINGFACULTY OF COMPUTING SCIENCE AND ENGINEERING

Abstract

Programming has become a basic literacy of the digital age, yet many children struggle to learn it because it is often introduced through dense syntax, abstract vocabulary and unforgiving error messages. Children who start with visual, block-based tools usually find the early concepts approachable, but a second problem appears later: the jump from dragging blocks to typing real code in a professional language is abrupt, and many learners lose confidence at exactly that point. This project presents the design and implementation of CodeQuest, an interactive, gamified coding platform that addresses both problems within a single, self-contained web application. CodeQuest is a full-stack TypeScript application. The frontend is built with React 18.3, Vite 6 and React Router 6.28, while the backend runs on Node.js 24 with Express 4.21, JSON Web Token (JWT) authentication, bcrypt password hashing and role-based access control. A dual database adapter uses SQLite through the Node.js DatabaseSync module during local development and switches automatically to PostgreSQL hosted on Supabase in production. The curriculum is organised into seven thematic worlds and forty lessons. The first four worlds (thirteen lessons) teach sequencing, loops, conditions, variables, functions and debugging through drag-and-drop blocks on a grid, with a dual-representation engine that translates each block sequence into equivalent Python or JavaScript code in real time. The last three worlds (twenty-seven lessons) move learners into a text-based code editor where they write real Python, JavaScript and Java. Python runs as genuine CPython in the browser through Pyodide and WebAssembly, JavaScript runs inside an isolated evaluation scope, and Java is checked by a custom lexical analyser that simulates program output. Learners are motivated through experience points, daily coding streaks, twenty-six collectible badges, a timed Code Golf mode with a dynamic XP decay system, and a three-tier hint system

Problem statement

Learning to code is difficult for children when it is taught using traditional syntax-heavy methods that overwhelm learners who have not yet developed strong reading or typing skills. Furthermore, there is an abrupt and discouraging transition for learners moving from visual, block-based tools to professional, text-based programming environments. Additionally, there is a shortage of simple tools that allow parents, teachers, and administrators to effectively monitor a child's progress and provide targeted support.

Objectives

  • Design an interactive platform that teaches basic programming concepts through visual lessons and drag-and-drop block activities.
  • Implement a browser-based code editor and execution environment that supports real Python, JavaScript and Java.
  • Integrate coding exercises, quizzes, debugging activities and timed Code Golf challenges to strengthen understanding and problem-solving skills.
  • Integrate gamification and progress-tracking features, including experience points, daily streaks and badges, to motivate learners and record their development.
  • Integrate dashboards that allow parents, teachers and administrators to monitor learners and manage lesson content and user accounts.

Methodology

The project adopted an iterative, agile-based development approach in two main iterations. The first iteration focused on the visual foundation, including authentication, role-based dashboards, the level map, drag-and-drop grid activities, quizzes, and the core gamification system. The second iteration extended the platform to support real, multi-language programming, adding Python, JavaScript, and Java lessons, a text-based code editor, the Pyodide (Python) and JavaScript runtimes, a custom Java lexical analyser and simulator, a cross-language code comparison tool, Bug Detective mode, the Code Playground, Code Golf challenges, daily streaks, an expanded badge collection, and a dual SQLite/PostgreSQL database adapter.

Results

The implementation resulted in a functional, web-based platform featuring a seven-world, forty-lesson curriculum. Key technical accomplishments include: a dual-representation engine that translates block sequences into equivalent Python or JavaScript in real time; an in-browser execution architecture using Pyodide for Python (CPython 3.11), a sandboxed evaluator for JavaScript, and a lexical analyser for Java; a dual database adapter using SQLite for local development and PostgreSQL (Supabase) for production; and role-based access control managed via JWT. The platform successfully provides interactive visual learning for beginners and a scaffolded bridge to real-world text-based programming, while offering monitoring dashboards for parents, teachers, and administrators.

Conclusion

The completed CodeQuest platform demonstrates that a full-featured coding education tool for children can be built using freely available, open-source technologies entirely within a web browser. By combining an approachable visual starting point with a guided transition to professional languages and incorporating robust gamification and monitoring tools, the system successfully addresses the identified gaps in existing coding education. The platform serves as a practical, self-contained solution for early computer science education.

Technologies

React 18.3TypeScript 5.6Vite 6Node.js 24Express 4.21SQLitePostgreSQLSupabasePyodide 0.26.2WebAssembly

Keywords

coding education for childrenblock-based programmingblock-to-text transitiongamificationWebAssemblyPyodiderole-based access control

Source document

Group 9 Project Report.pdf