Back to projects

Interactive Java OOP Learning Game

RoboRescue

A browser-based learning game that teaches Java object-oriented programming through rescue-themed coding challenges, progressive levels, instant validation, and animated feedback.

RoboRescue

Role

Frontend Developer

Technology

Next.js 14TypeScriptMonaco EditorJavaFramer MotionNext.js API Routes

01 / Overview

RoboRescue turns core Java OOP topics into a structured game. Learners move through classes and objects, encapsulation, inheritance, interfaces, abstraction, and polymorphism by editing Java code and completing small rescue missions inside the browser.

02 / The challenge

Teaching OOP interactively requires more than displaying lessons. The product needed progressive code scaffolding, an editor that feels familiar, precise feedback for incomplete solutions, persistent progress, and enough visual personality to make repeated exercises feel like a game.

03 / The solution

I structured the curriculum as data-driven sections and levels, paired each level with starter Java code and explicit validation rules, and placed the validation behind a Next.js API route. Monaco provides the coding workspace, while Framer Motion and robot-themed success states turn technical progress into visible game feedback.

04 / Techniques and where they were applied

Not only what was used, but where and why.

01

Technique

Data-driven curriculum architecture

Where it was applied

LOCAL_SECTIONS and LOCAL_LEVELS define every topic, level, task, starter snippet, success message, and validation rule without hard-coding each screen.

02

Technique

Rule-based Java solution validation

Where it was applied

Per-level patterns verify classes, object creation, fields, constructors, private access, getters/setters, static state, extends, super, overrides, interfaces, and polymorphic references.

03

Technique

Server validation boundary

Where it was applied

POST /api/checkCode validates userId, levelId, and code, then returns structured success or specific rule errors to the learning interface.

04

Technique

Progressive code scaffolding

Where it was applied

Each mission begins with previousCode and a focused task so the learner changes one OOP concept at a time instead of starting from an empty editor.

05

Technique

Local-first learning fallback

Where it was applied

Local user and progress storage keys keep demo learning flows usable even when the remote product services are unavailable.

06

Technique

Motion as learning feedback

Where it was applied

Framer Motion is used across the landing, challenge map, robot guidance, loaders, and level-success components to reinforce progress and state changes.

05 / Key features

The core capabilities built into RoboRescue.

Four progressive learning sections covering the Java OOP foundations

Browser-based Java coding workspace

Starter code, task descriptions, and level-specific success messages

Instant, actionable validation errors

Challenge map, profile, authentication, and progress flows

Animated landing, robot messages, loaders, and success feedback

06 / Related insights

A deeper explanation of the engineering decisions behind this kind of product.