Commit Graph

37 Commits

Author SHA1 Message Date
159d82d602 Finally added 3d fractals
Some checks failed
Build, Test & Push Frontend / quality-check (pull_request) Failing after 43s
Build, Test & Push Frontend / docker (pull_request) Has been skipped
2026-02-11 11:09:07 +01:00
ba3dc4d928 First image of fractal
Next the nasty stuff like movement and ui :-D
2026-02-11 08:31:27 +01:00
5d162b57ab Add fractal visualization feature
All checks were successful
Build, Test & Push Frontend / quality-check (pull_request) Successful in 55s
Build, Test & Push Frontend / docker (pull_request) Has been skipped
Introduce a new Fractal visualization: adds FractalComponent (template, styles, TS), FractalService (rendering, palettes, Mandelbrot/Julia/Burning Ship/Newton implementations), and Fractal model/types. Wire up routing and router constants (route and component import), add wiki links to UrlConstants, and expose the new algorithm in AlgorithmsService. Also add i18n entries (en/de) for UI labels and explanations. Component supports canvas zoom/drag, color schemes and iteration controls.
2026-02-10 14:49:17 +01:00
e8354bfecd Add Prim/Kruskal maze gen & nodeData refactor
All checks were successful
Build, Test & Push Frontend / quality-check (pull_request) Successful in 1m10s
Build, Test & Push Frontend / docker (pull_request) Has been skipped
Implement Prim and Kruskal maze generation in the Labyrinth component with animated generation and UI guards. Introduces isAnimationRunning signal, mazeAnimationSpeed, maze node order tracking and animateMazeGeneration; createRandom(now takes a boolean) triggers either Prim or Kruskal flow, sets random start/end, and animates. Refactor Node.distance -> nodeData across models, components and the PathfindingService (Dijkstra/A*) to use nodeData for g-scores/ids. Add SharedFunctions.shuffleArray utility and update i18n (EN/DE) with labels for Prim/Kruskal. Misc: minor cleanup/init changes and drawing logic adjustments to support the new maze flows.
2026-02-09 14:55:05 +01:00
bbec113f5d Add labyrinth maze generator and integrate routes
Introduce a new Labyrinth feature: add LabyrinthComponent (TS/HTML/SCSS) implementing maze generation (Prim's/Kruskal) and visualization using the existing generic grid. Wire the component into RouterConstants and app.routes, and add the algorithm entry to AlgorithmsService. Refactor pathfinding internals: rename Node.previousNode -> Node.linkedNode and update PathfindingService and PathfindingComponent accordingly. Add SharedFunctions.random helpers and replace local random utilities. Rename Conway component files/class to ConwayGolComponent and update template path. Add i18n entries for labyrinth (en/de). Minor housekeeping: bump package version to 1.0.0 and disable @typescript-eslint/prefer-for-of in ESLint config.
2026-02-09 10:57:24 +01:00
2a808c1d96 Increase default grid and rename simple scene
Raise default Conway's Game of Life grid size from 40x40 to 50x50 (src/app/pages/algorithms/conway-gol/conway-gol.models.ts) to provide a larger initial viewport. Update i18n labels for the simple scene to 'Glider'/'Gleiter' in English and German respectively (src/assets/i18n/en.json, src/assets/i18n/de.json) for clearer naming.
2026-02-06 22:06:02 +01:00
bf46c57db0 Conway GOL: add scenarios & start/pause loop
Add predefined scenarios (SIMPLE, PULSAR, GUN) and UI controls to generate them; introduce a start/pause game loop driven by an Angular signal. Reduce default grid to 40x40 and max grid to 100, speed up default generation to 30ms, and pause the game when grid size changes. Implement scenario setup helpers (simple, pulsar, glider gun), life-rule evaluation, neighbor counting, grid swapping and a delay helper. Update template to show scenario buttons and conditional start/pause button, and add corresponding i18n entries for English and German.
2026-02-06 22:03:18 +01:00
59148db295 Enhance Conway's Game of Life UI & interaction
Add interactive controls and drawing support for Conway's Game of Life: introduce Node.alive, Scenario enum, spawn/speed/time constants, random/empty generation, and mouse/touch drawing (click-drag/touch to toggle cells). Update template to include control buttons, speed input, legend, and expose Scenario constants. Implement grid initialization, random seeding, grid position mapping, and optimized node drawing/color logic.

Also update i18n (de/en) with GOL strings and move GRID label keys to ALGORITHM, switch some label usages accordingly. Move generic container/legend styles into global styles.scss (adjust canvas border color), and simplify component SCSS files. Change CONWAYS_WIKI URL to German wiki and remove now-unused UrlConstants references from components.
2026-02-06 14:40:49 +01:00
a22dd17869 Created default build up
- next make grid be a own component with a lot of callbacks
- after this start the game implementtion
2026-02-06 11:52:17 +01:00
da43213808 Created new component and refactored
- Created new component to display the game of life algo
- created an algo info component to combine the algo header for all algos
2026-02-06 09:59:12 +01:00
52f0e371ee Add random scenario and refactor case handling
Consolidate scenario creation by replacing separate normal/edge/clear handlers with createCase({withWalls, scenario}). Add a new 'random' scenario that picks random start/end positions and places random walls (controlled by MAX_RANDOM_WALLS_FACTORS). Change pathLength to a string and display "∞" for empty paths. Update applyGridSize logic to avoid unnecessary resets when dimensions unchanged and to initialize with the new API. Add random helper and MAX_RANDOM_WALLS_FACTORS constant, update template buttons to call createCase, and add i18n entries for the random case and updated clear-board label.
2026-02-05 09:24:44 +01:00
6f282a004b Add Cocktail Sort algorithm and UI
Introduce Cocktail (Shaker) Sort to the sorting visualizer: implement cocktailSort and a helper switchValuesIfCorrect in the SortingService to generate snapshots for the animation. Add SHAKE_SORT_WIKI URL constant and a UI paragraph (with a link) plus German translation text for the algorithm explanation. Expose the new algorithm in the component (availableAlgorithms and switch handling). Also refactor the component to use Angular's inject() for SortingService and ChangeDetectorRef, tighten some typings (timeoutIds -> number[]), adjust default arraySize, and use const where appropriate.
2026-02-04 15:33:51 +01:00
beb5bb7db1 Add sorting explanations, wiki links, and i18n
Introduce Bubble, Quick and Heap Sort documentation: add wiki URL constants, update sorting component to show Bubble/Quick/Heap Sort explanations with Wikipedia links, and include additional disclaimer text and list in the UI. Add corresponding i18n entries in English and German containing algorithm descriptions, note/title and several disclaimer lines.
2026-02-04 14:19:27 +01:00
a10f62f2dd Refactor pathfinding/sorting UI and update i18n
Replace plain container with Angular Material mat-card in pathfinding view and reorganize UI: add mat-card header/content, algorithm explanation block, control buttons, node-type toggle group, grid-size inputs, legend and results display (path length & execution time). Import and wire MatCard modules in the pathfinding component. Move .algo-info styling from the component SCSS into global styles.scss and remove it from the component stylesheet. Update sorting template to use new SORTING translation keys and add an UrlConstants reference in the sorting component TS for external links. Add/adjust i18n keys in en.json and de.json for sorting and grid labels to match the updated templates.
2026-02-04 12:17:54 +01:00
450ab0b837 Implement snapshot-based sorting visualizer
Refactor sorting to produce and consume SortSnapshot sequences for visualization. SortingService now creates immutable snapshots and implements bubble, quick and heap sorts (with helper methods) instead of performing UI delays; a swap/heapify/partition flow records state changes. SortingComponent was updated to animate snapshots (with start/stop timeout handling), added array size input and controls, stores an unsorted copy for resets, and uses ChangeDetectorRef for updates. Minor UI tweaks: faster bar transitions, info color, updated default array size and animation speed, and added i18n keys for ARRAY_SIZE (en/de).
2026-02-04 11:37:11 +01:00
cbc46cf858 initial implementation of sorting algorithms 2026-02-04 09:22:05 +01:00
668640dcc6 Adjusted small things, norhting serious 2026-02-02 10:44:13 +01:00
e0f0a0ed04 Enhance pathfinding UI with grid resizing and scenarios
Added controls for dynamic grid size adjustment and scenario presets (normal and edge case) to the pathfinding component. Improved UI/UX with algorithm explanations, Wikipedia links, and reorganized controls. Refactored grid logic for flexibility, updated translations, and improved code structure for maintainability.
2026-02-02 10:06:59 +01:00
3a13d62c9e Remove particles background and update routing
Deleted the particles background component and its related files. Updated routing logic and constants, refactored topbar and algorithms pages, and performed dependency updates and cleanup in package files. Also improved i18n translations and adjusted TypeScript configuration.
2026-02-02 08:51:10 +01:00
1ce7927f14 Remove 'Clear Path' button and translation keys
Deleted the 'Clear Path' button from the pathfinding component and removed its associated translation entries from both English and German i18n files.
2026-02-01 17:08:55 +01:00
2d25b568f5 Add ESLint integration and Angular linting support
Configured ESLint for the project with Angular and TypeScript support. Added angular-eslint dependencies, updated angular.json to include linting, and created eslint.config.js for lint rules. Updated package.json and package-lock.json with new dev dependencies.
2026-02-01 17:04:07 +01:00
17db997398 Add algorithms section with pathfinding visualizer
Introduces a new 'Algorithms' section, replacing the previous 'Hobbies' page. Adds components, services, and models for algorithm categories and a pathfinding visualizer supporting Dijkstra and A* algorithms. Updates navigation and i18n files to reflect the new section and removes all hobbies-related files.
2026-02-01 16:00:10 +01:00
238e279435 Fixed problem with project dialog 2026-01-18 10:55:12 +01:00
e713e3b1c1 Fixed translation problems 2026-01-18 10:17:10 +01:00
93a7bd7863 Extended about page and fixed internal links
All checks were successful
Build & Push Frontend A / docker (push) Successful in 1m37s
2026-01-17 11:25:53 +01:00
bbf029dc60 Added new project for my homeserver 2026-01-17 10:55:18 +01:00
24c438a01e refactored projects site 2026-01-17 10:27:35 +01:00
93b2a0fed7 Extended project page a little bit
All checks were successful
Build & Push Frontend A / docker (push) Successful in 42s
2026-01-01 12:57:23 +01:00
8f888851e8 optimized ui a little bit and added impressum 2025-12-20 15:36:47 +01:00
0f1ff27ea1 Added introduction and images for some projects 2025-12-14 17:08:53 +01:00
17585bfaca Added project accordion next will be more content 2025-12-13 13:57:49 +01:00
4213d298cd Updated hero text 2025-12-06 10:19:47 +01:00
839b7c9ba5 Finalized the About page for now 2025-11-29 15:13:47 +01:00
664aed47a6 Update Angular and dependencies, add sponsor logos
Upgraded Angular packages and related dependencies to version 20.3.14 and updated several @inquirer and other dependencies. Added new sponsor logos to the assets folder and updated the About page to display them, including changes to constants, HTML, SCSS, TypeScript, and i18n files. Minor style and content adjustments were made to the About page.
2025-11-29 11:56:30 +01:00
5969e66872 Started with about page and my cv 2025-11-09 12:21:34 +01:00
06220716a8 Update de.json 2025-11-07 10:28:41 +01:00
46e5cd1e01 Implemented following stuff
- Basic Material Design
- Default Component to see anything
- theme switching between light and dark
- language change between german and english
2025-11-06 12:11:13 +01:00