Recursion-clicker - #98
Open
mrbdahlem wants to merge 3 commits into
Open
Conversation
mrbdahlem
commented
Jan 7, 2026
Collaborator
- Student view: Sierpinski triangle exploration
- Manager view: themed dashboard with map/leaderboard tabs, stage controls
- Server: fractal data structure with ternary heap indexing (FractalStore)
- Styled with custom CSS theme matching recursive exploration concept
…ation, and instructor dashboard - Student view: Sierpinski triangle exploration with SVG navigation control - Manager view: themed dashboard with map/leaderboard tabs, join code copy, stage controls - Server: fractal data structure with ternary heap indexing (FractalStore) - Styled with custom CSS theme matching recursive exploration concept
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces a new collaborative educational activity called "Triangulon Invasion" that teaches recursive concepts through interactive Sierpinski triangle exploration. The activity features a student interface for exploring fractal subdivisions and a manager dashboard for controlling stages and tracking leaderboard progress.
- Implements a complete activity with student and manager views using WebSocket-based real-time synchronization
- Adds CSRF protection to WebSocket connections in the core router
- Creates a custom fractal data structure using ternary heap indexing for efficient triangle navigation
- Applies a themed CSS design matching the recursive exploration concept
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| server/core/wsRouter.js | Adds Origin header validation for CSRF protection on WebSocket connections |
| server/activities/activityRegistry.test.js | Registers "triangulon-invasion" in expected activities list |
| client/src/activities/index.test.js | Registers "triangulon-invasion" in client-side activity list |
| activities/triangulon-invasion/server/routes.js | Implements WebSocket and HTTP endpoints for session management, stage control, and event broadcasting |
| activities/triangulon-invasion/server/fractalStore.js | Provides fractal data structure with ternary heap indexing for triangle hierarchy |
| activities/triangulon-invasion/client/student/triangulon.css | Defines custom theme with gradient backgrounds, grid overlays, and styled UI components |
| activities/triangulon-invasion/client/student/TriangleNav.jsx | Renders interactive SVG triangle navigation interface with geometric calculations |
| activities/triangulon-invasion/client/student/Student.jsx | Creates student view with WebSocket connection, triangle workspace, and mini-map |
| activities/triangulon-invasion/client/manager/Manager.jsx | Provides instructor dashboard with stage controls, map/leaderboard tabs, and event monitoring |
| activities/triangulon-invasion/client/index.jsx | Exports activity configuration with manager and student components |
| activities/triangulon-invasion/activity.config.js | Configures activity metadata, client/server entry points, and collaborative mode |
| package-lock.json | Removes "peer" flags from various dependencies to resolve package resolution |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Add JSDoc and ESM exports for fractalStore plus normalize depth math - Add FractalStore tests and align imports; validate subdivide paths and bound event history - Protect WS origin by requiring header, guard generic event payloads, and note future triangle diff handling - Improve TriangleNav readability (naming, zero-length normalize, geometry comment) and clean student manager UI totals
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.