diff --git a/app/analyzer/algorithms/array/binary-search/metadata.json b/app/analyzer/algorithms/array/binary-search/metadata.json index 42c24ec..cb06208 100644 --- a/app/analyzer/algorithms/array/binary-search/metadata.json +++ b/app/analyzer/algorithms/array/binary-search/metadata.json @@ -1,5 +1,6 @@ { "name": "Array binary search", "category": "array", - "indexes": ["low", "high", "mid"] + "indexes": ["low", "high", "mid"], + "description": "Description of algorithm" } diff --git a/app/analyzer/algorithms/array/delete-item/metadata.json b/app/analyzer/algorithms/array/delete-item/metadata.json index 89e904a..9a28f51 100644 --- a/app/analyzer/algorithms/array/delete-item/metadata.json +++ b/app/analyzer/algorithms/array/delete-item/metadata.json @@ -1,5 +1,6 @@ { "name": "Deletion in array", "category": "array", - "indexes": ["i", "k"] + "indexes": ["i", "k"], + "description": "Description of algorithm" } diff --git a/app/analyzer/algorithms/array/insert-item/metadata.json b/app/analyzer/algorithms/array/insert-item/metadata.json index 47f4f9b..377dc53 100644 --- a/app/analyzer/algorithms/array/insert-item/metadata.json +++ b/app/analyzer/algorithms/array/insert-item/metadata.json @@ -1,5 +1,6 @@ { "name": "Insertion in array", "category": "array", - "indexes": ["i", "k"] + "indexes": ["i", "k"], + "description": "Description of algorithm" } diff --git a/app/analyzer/algorithms/array/largest-item-in-array/algorithm.js b/app/analyzer/algorithms/array/largest-item-in-array/algorithm.js new file mode 100644 index 0000000..f1d1ace --- /dev/null +++ b/app/analyzer/algorithms/array/largest-item-in-array/algorithm.js @@ -0,0 +1,12 @@ +export function largestItem(arr) { + debugger; + let max = arr[0]; + + for (let i = 1; i < arr.length; i++) { + if (arr[i] > max) { + max = arr[i]; + } + } + + return max; +} diff --git a/app/analyzer/algorithms/array/largest-item-in-array/metadata.json b/app/analyzer/algorithms/array/largest-item-in-array/metadata.json new file mode 100644 index 0000000..7241ee7 --- /dev/null +++ b/app/analyzer/algorithms/array/largest-item-in-array/metadata.json @@ -0,0 +1,6 @@ +{ + "name": "Largest element in array", + "category": "array", + "indexes": ["i"], + "description": "Description of algorithm" +} diff --git a/app/analyzer/algorithms/array/largest-item-in-array/run.js b/app/analyzer/algorithms/array/largest-item-in-array/run.js new file mode 100644 index 0000000..cc68f03 --- /dev/null +++ b/app/analyzer/algorithms/array/largest-item-in-array/run.js @@ -0,0 +1,3 @@ +import { largestItem } from "./algorithm.js"; + +largestItem([20, 10, 20, 100, 4, 60]); diff --git a/app/analyzer/algorithms/array/max-sum/metadata.json b/app/analyzer/algorithms/array/max-sum/metadata.json index 22d69ab..041180b 100644 --- a/app/analyzer/algorithms/array/max-sum/metadata.json +++ b/app/analyzer/algorithms/array/max-sum/metadata.json @@ -1,5 +1,6 @@ { "name": "Array max sum", "category": "array", - "indexes": ["i", "leftEdge"] + "indexes": ["i", "leftEdge"], + "description": "Description of algorithm" } diff --git a/app/analyzer/algorithms/linked-list/find-middle/metadata.json b/app/analyzer/algorithms/linked-list/find-middle/metadata.json index f9ab08a..7f5f314 100644 --- a/app/analyzer/algorithms/linked-list/find-middle/metadata.json +++ b/app/analyzer/algorithms/linked-list/find-middle/metadata.json @@ -1,4 +1,5 @@ { "name": "Middle of linked list", - "category": "linked-list" + "category": "linked-list", + "description": "Description of algorithm" } diff --git a/app/analyzer/generate-database.ts b/app/analyzer/generate-database.ts index 8569165..c4f8872 100644 --- a/app/analyzer/generate-database.ts +++ b/app/analyzer/generate-database.ts @@ -32,6 +32,7 @@ export async function generateDatabase() { id: metadata.name.split(" ").join("-").toLowerCase(), name: metadata.name, category: metadata.category, + description: metadata.description, ...debugResult, }); } diff --git a/app/components/code-viewer/code-viewer.tsx b/app/components/code-viewer/code-viewer.tsx index cc91e84..c2db5b2 100644 --- a/app/components/code-viewer/code-viewer.tsx +++ b/app/components/code-viewer/code-viewer.tsx @@ -9,9 +9,12 @@ interface Props { export const CodeViewer = ({ sourceCode, currentLine }: Props) => { return ( -
+
-        
+        
       
@@ -27,7 +30,7 @@ const LineHighlight = ({ sourceCode, currentLine }: Props) => { {lineNumbers.map((line) => ( {line} diff --git a/app/components/header/header.tsx b/app/components/header/header.tsx index fb40be4..82136f2 100644 --- a/app/components/header/header.tsx +++ b/app/components/header/header.tsx @@ -2,10 +2,9 @@ export const Header = () => { return ( -
- {/* Logo */} -

- Data Structures Analyzer +
+

+ DATA STRUCTURES ANALYZER

); diff --git a/app/components/visualization-canvas/visualization-canvas.tsx b/app/components/visualization-canvas/visualization-canvas.tsx index f6ccd6b..33e2565 100644 --- a/app/components/visualization-canvas/visualization-canvas.tsx +++ b/app/components/visualization-canvas/visualization-canvas.tsx @@ -42,7 +42,7 @@ export const VisualizationCanvas = ({ const { nodes, edges } = dataStructures[0]; return ( -
+
[]; +export const links: LinksFunction = () => [ + { rel: "preconnect", href: "https://fonts.googleapis.com" }, + { + rel: "preconnect", + href: "https://fonts.gstatic.com", + crossOrigin: "anonymous", + }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Recursive:wght@300..500&display=swap", + }, + { + rel: "stylesheet", + href: "https://fonts.googleapis.com/css2?family=Recursive:wght,MONO@300..500,1&display=swap", + }, +]; export function Layout({ children }: { children: React.ReactNode }) { return ( @@ -20,7 +35,7 @@ export function Layout({ children }: { children: React.ReactNode }) { - + {children} diff --git a/app/routes/algorithms.$algorithm.tsx b/app/routes/algorithms.$algorithm.tsx index d2a114b..e078741 100644 --- a/app/routes/algorithms.$algorithm.tsx +++ b/app/routes/algorithms.$algorithm.tsx @@ -12,6 +12,12 @@ import { import { AlgorithmData } from "~/types"; import { db } from "~/utils/db.server"; +export const meta: MetaFunction = ({ data }) => { + return data + ? [{ title: `Data Structures Analyzer - ${data?.algorithm?.name ?? ""}` }] + : [{ title: "Data Structures Analyzer - Algorithm Not Found" }]; +}; + export const loader = async ({ params }: LoaderFunctionArgs) => { const algorithm = await db .collection("algorithms") @@ -20,12 +26,6 @@ export const loader = async ({ params }: LoaderFunctionArgs) => { return json({ algorithm }); }; -export const meta: MetaFunction = ({ data }) => { - return data - ? [{ title: `Data Structures Analyzer - ${data?.algorithm?.name ?? ""}` }] - : [{ title: "Data Structures Analyzer - Algorithm Not Found" }]; -}; - export default function AlgorithmRoute() { const { algorithm } = useLoaderData(); const [currentStep, setCurrentStep] = React.useState(0); @@ -38,10 +38,17 @@ export default function AlgorithmRoute() {
+
+
+

{algorithm.name}

+

{algorithm.description}

+
+ + +
} rightComponent={ (); return ( -
+
@@ -27,7 +27,7 @@ export default function AlgorithmsLayout() { {algorithms.map((algorithm) => (
  • {algorithm.name}
  • diff --git a/app/types/debug.ts b/app/types/debug.ts index edb445a..ae291a2 100644 --- a/app/types/debug.ts +++ b/app/types/debug.ts @@ -57,10 +57,12 @@ export interface AlgorithmData extends DebugResult { id: string; name: string; category: string; + description?: string; } export interface AlgorithmMetadata { name: string; category: string; + description?: string; indexes?: string[]; } diff --git a/tailwind.config.ts b/tailwind.config.ts index 207d107..2cf6fa3 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,7 +1,14 @@ -import type { Config } from "tailwindcss" +import type { Config } from "tailwindcss"; export default { content: ["./app/**/{**,.client,.server}/**/*.{js,jsx,ts,tsx}"], - theme: {}, + theme: { + extend: { + fontFamily: { + sans: ['"Recursive"'], + mono: ['"Recursive"'], + }, + }, + }, plugins: [], -} satisfies Config +} satisfies Config;