From a04af0162b527329d2acf74403d99ccdc8f46a19 Mon Sep 17 00:00:00 2001 From: Solo Shun <88045720+soloshun@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:57:06 +0000 Subject: [PATCH 1/3] fix: update algorithm implementation status to false for various topics --- apps/web/src/lib/algorithms-data.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/src/lib/algorithms-data.ts b/apps/web/src/lib/algorithms-data.ts index af0b8d8..805c9d5 100644 --- a/apps/web/src/lib/algorithms-data.ts +++ b/apps/web/src/lib/algorithms-data.ts @@ -27,7 +27,7 @@ export const categories: AlgorithmCategories = { items: { Arrays: { topics: [ - { name: "Basic Array Operations", implemented: true }, + { name: "Basic Array Operations", implemented: false }, { name: "Dynamic Arrays", implemented: false }, { name: "Multi-dimensional Arrays", implemented: false }, ], @@ -95,7 +95,7 @@ export const categories: AlgorithmCategories = { items: { "Sorting (Easy)": { topics: [ - { name: "Bubble Sort", implemented: true }, + { name: "Bubble Sort", implemented: false }, { name: "Selection Sort", implemented: false }, { name: "Insertion Sort", implemented: false }, ], @@ -116,7 +116,7 @@ export const categories: AlgorithmCategories = { }, Searching: { topics: [ - { name: "Linear Search", implemented: true }, + { name: "Linear Search", implemented: false }, { name: "Binary Search", implemented: false }, { name: "Jump Search", implemented: false }, { name: "Exponential Search", implemented: false }, From 0d2a8704a0729fc77992db03f3266e8ba6b98c74 Mon Sep 17 00:00:00 2001 From: Solo Shun <88045720+soloshun@users.noreply.github.com> Date: Mon, 26 Jan 2026 23:57:37 +0000 Subject: [PATCH 2/3] feat: add custom 404 Not Found page with glitch text effect and animated binary particles --- apps/web/src/app/not-found.tsx | 253 +++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 apps/web/src/app/not-found.tsx diff --git a/apps/web/src/app/not-found.tsx b/apps/web/src/app/not-found.tsx new file mode 100644 index 0000000..1492aec --- /dev/null +++ b/apps/web/src/app/not-found.tsx @@ -0,0 +1,253 @@ +"use client"; + +import { useState, useEffect } from "react"; +import Link from "next/link"; +import { motion } from "framer-motion"; +import { Home, ArrowLeft, Github, BookOpen, Globe } from "lucide-react"; + +// Glitch text effect +function GlitchText({ text }: { text: string }) { + const [glitchedText, setGlitchedText] = useState(text); + + useEffect(() => { + const glitchChars = "!@#$%^&*()_+-=[]{}|;:,.<>?"; + let interval: NodeJS.Timeout; + + const startGlitch = () => { + let iterations = 0; + interval = setInterval(() => { + setGlitchedText( + text + .split("") + .map((char, index) => { + if (index < iterations) return text[index]; + return glitchChars[Math.floor(Math.random() * glitchChars.length)]; + }) + .join("") + ); + iterations += 1 / 3; + if (iterations >= text.length) { + clearInterval(interval); + setGlitchedText(text); + } + }, 30); + }; + + startGlitch(); + const loopInterval = setInterval(startGlitch, 5000); + + return () => { + clearInterval(interval); + clearInterval(loopInterval); + }; + }, [text]); + + return {glitchedText}; +} + +// Floating binary particles +function BinaryParticle({ delay }: { delay: number }) { + const binary = Math.random() > 0.5 ? "1" : "0"; + const left = Math.random() * 100; + const duration = 5 + Math.random() * 5; + + return ( + + {binary} + + ); +} + +export default function NotFound() { + const [mounted, setMounted] = useState(false); + const [currentPath, setCurrentPath] = useState(""); + + useEffect(() => { + setMounted(true); + setCurrentPath(window.location.pathname); + }, []); + + if (!mounted) return null; + + return ( +
+ {/* Binary rain */} +
+ {[...Array(20)].map((_, i) => ( + + ))} +
+ + {/* Grid pattern */} +
+ + {/* Noise overlay */} +
+
+
+ + {/* Gradient orbs */} +
+
+ + {/* Content */} +
+ {/* Large 404 */} + +

+ 404 +

+ {/* Glitch layers */} +
+ 404 +
+
+ 404 +
+
+ + {/* Terminal window */} + + {/* Terminal header */} +
+
+
+
+
+
+ + system.error + +
+ + {/* Terminal content */} +
+
+ [ERROR] Route not found +
+
+ requested: "{currentPath}" +
+
+ status: NOT_FOUND +
+
+ $ + redirect --to + /home + +
+
+ + + {/* Error message */} + +

+ +

+

+ The algorithm you're searching for doesn't exist in our registry. + Perhaps it's still being visualized somewhere in the void. +

+
+ + {/* Action buttons */} + + + + Back to Home + + + + + + {/* Helpful links */} + + + + Launch App + + + + Documentation + + + + GitHub + + + + {/* Fun message */} + + Error code: ALGORITHM_NOT_IN_REGISTRY • Time complexity: O(404) + +
+
+ ); +} From 6fa308973e6332d35abcc5760570e358cf736188 Mon Sep 17 00:00:00 2001 From: Solo Shun <88045720+soloshun@users.noreply.github.com> Date: Tue, 27 Jan 2026 00:53:05 +0000 Subject: [PATCH 3/3] fix(web): pnpm lint errors --- apps/web/src/app/not-found.tsx | 59 +++++++++++-------- .../sections/algorithm-checklist.tsx | 4 +- .../components/ui/particles-background.tsx | 2 +- 3 files changed, 38 insertions(+), 27 deletions(-) diff --git a/apps/web/src/app/not-found.tsx b/apps/web/src/app/not-found.tsx index 1492aec..9f45dd2 100644 --- a/apps/web/src/app/not-found.tsx +++ b/apps/web/src/app/not-found.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState, useEffect } from "react"; +import { useState, useEffect, useMemo } from "react"; import Link from "next/link"; import { motion } from "framer-motion"; import { Home, ArrowLeft, Github, BookOpen, Globe } from "lucide-react"; @@ -8,11 +8,11 @@ import { Home, ArrowLeft, Github, BookOpen, Globe } from "lucide-react"; // Glitch text effect function GlitchText({ text }: { text: string }) { const [glitchedText, setGlitchedText] = useState(text); - + useEffect(() => { const glitchChars = "!@#$%^&*()_+-=[]{}|;:,.<>?"; let interval: NodeJS.Timeout; - + const startGlitch = () => { let iterations = 0; interval = setInterval(() => { @@ -35,7 +35,7 @@ function GlitchText({ text }: { text: string }) { startGlitch(); const loopInterval = setInterval(startGlitch, 5000); - + return () => { clearInterval(interval); clearInterval(loopInterval); @@ -47,20 +47,24 @@ function GlitchText({ text }: { text: string }) { // Floating binary particles function BinaryParticle({ delay }: { delay: number }) { - const binary = Math.random() > 0.5 ? "1" : "0"; - const left = Math.random() * 100; - const duration = 5 + Math.random() * 5; - + /* eslint-disable react-hooks/purity */ + const { binary, left, duration } = useMemo(() => ({ + binary: Math.random() > 0.5 ? "1" : "0", + left: Math.random() * 100, + duration: 5 + Math.random() * 5 + }), []); + /* eslint-enable react-hooks/purity */ + return ( { + return Array.from({ length: 20 }, () => Math.random() * 3); + }, []); + /* eslint-enable react-hooks/purity */ + if (!mounted) return null; return (
{/* Binary rain */}
- {[...Array(20)].map((_, i) => ( - + {particleDelays.map((delay, i) => ( + ))}
{/* Grid pattern */}
- + {/* Noise overlay */}
@@ -179,7 +190,7 @@ export default function NotFound() {

- The algorithm you're searching for doesn't exist in our registry. + The algorithm you're searching for doesn't exist in our registry. Perhaps it's still being visualized somewhere in the void.

@@ -215,22 +226,22 @@ export default function NotFound() { transition={{ duration: 0.5, delay: 0.5 }} className="mt-10 flex flex-wrap items-center justify-center gap-6 text-sm" > - Launch App - Documentation - diff --git a/apps/web/src/components/sections/algorithm-checklist.tsx b/apps/web/src/components/sections/algorithm-checklist.tsx index 8d1bc93..cb5d2dd 100644 --- a/apps/web/src/components/sections/algorithm-checklist.tsx +++ b/apps/web/src/components/sections/algorithm-checklist.tsx @@ -153,7 +153,7 @@ export function AlgorithmChecklist() {

{total}+ algorithms and data structures. This is what we're building together. - Pick one and contribute, or suggest new ones. ML/DL, algorithms from other fields, and visualizers are all welcome. + Pick one and contribute, or suggest new ones. ML/DL, Maths, Physics, algorithms from other fields, and visualizers are all welcome.

{/* Progress bar */} @@ -263,7 +263,7 @@ export function AlgorithmChecklist() { >

Open to Contributions:{" "} - Machine Learning & Deep Learning Algorithm Visualizers etc... + Machine Learning, Deep Learning, Physics, Math, Algorithm Visualizers etc...

diff --git a/apps/web/src/components/ui/particles-background.tsx b/apps/web/src/components/ui/particles-background.tsx index a78d770..896fb61 100644 --- a/apps/web/src/components/ui/particles-background.tsx +++ b/apps/web/src/components/ui/particles-background.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import Particles, { initParticlesEngine } from "@tsparticles/react"; -import { type Container, type ISourceOptions } from "@tsparticles/engine"; +import { type ISourceOptions } from "@tsparticles/engine"; import { loadSlim } from "@tsparticles/slim"; export function ParticlesBackground() {