Files
playground-frontend/src/assets/i18n/en.json
Lobo 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

313 lines
16 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"APP": {
"TITLE": "Playground",
"COPYRIGHT": "Images protected by copyright, no use without permission!"
},
"TOPBAR": {
"ABOUT": "About me",
"IMPRINT": "Impressum",
"PROJECTS": "Projects",
"ALGORITHMS": "Algorithms",
"SETTINGS": "Settings",
"LANGUAGE": "Language",
"APPEARANCE": "Appearance"
},
"THEME": { "LIGHT": "Light", "DARK": "Dark" },
"LANG": { "LABEL": "Language", "EN": "English", "DE": "Deutsch" },
"ABOUT": {
"ALT": { "PROFILE": "Profile photo of Andreas Dahm" },
"HELLO": "Hello, Im Andreas.",
"LEAD": "I first discovered my interest in software development during my training as an application developer. After completing my degree in Applied Computer Science at FH Bingen, I have been working continuously as a software developer since 2010. During this time, I have gained experience in various areas, including 3D simulation and modern web applications. I also enjoy working on personal software projects, particularly in game development and algorithmic topics. Thank you for stopping by!",
"ROLE": "Senior Software Developer / Full-Stack Developer / Software Architect",
"LOCATION": "Munich · Remote",
"DOWNLOAD_CV": "Download CV",
"VIEW_PROJECTS": "View projects",
"CONTACT_ME": "Contact me",
"SECTION": {
"SKILLS": "Skills & Stack",
"PRIMARY": "Core",
"TOOLSET": "Toolset",
"EXPERIENCE": "Experience",
"PROJECTS": "Projects",
"EDUCATION": "Education"
},
"SKILLS": {
"JAVA": "Java 8/Java 21+",
"SPRING": "Spring Boot 2/3",
"ANGULAR": "Angular 20+",
"DOCKER": "Docker",
"UNITY": "Unity",
"PYTHON": "Python",
"CSHARP": "C#",
"TYPESCRIPT": "TypeScript"
},
"TOOLS": {
"GIT": "Git",
"GITHUB": "Github",
"GITLAB": "Gitlab",
"JENKINS": "Jenkins",
"K8S": "Kubernetes / k3d",
"POSTGRES": "PostgreSQL",
"MONGO": "MongoDB",
"GRAFANA": "Grafana/Prometheus"
},
"XP": {
"COMPANY8": {
"COMPANY": "Teraport GmbH",
"ROLE": "Senior Software Developer / Architect",
"TIME": "Feb. 2024 now",
"HIGHLIGHTS": {
"P1": "Architecture and implementation of database connectivity using Hibernate 6.x.",
"P2": "Design and development of a full-stack web application for collision analysis (Angular + Spring Boot + Docker).",
"P3": "Development of a cost analysis tool called MIDO."
}
},
"COMPANY7": {
"COMPANY": "ColorDigital GmbH",
"ROLE": "Lead Software Developer",
"TIME": "Mar. 2023 Dec. 2023",
"HIGHLIGHTS": {
"P1": "Planning a new cloud architecture to migrate a large legacy monolith to a modern microservice-based platform.",
"P2": "Led the development team of three to four backend engineers.",
"P3": "Collaborated with partners and customers on integrating their systems with the DMIx."
}
},
"COMPANY6": {
"COMPANY": "ColorDigital GmbH",
"ROLE": "Senior Software Developer",
"TIME": "Mar. 2021 Mar. 2023",
"HIGHLIGHTS": {
"P1": "Worked on the DMIx core cloud, including the implementation of an Elasticsearch-based real-time search module.",
"P2": "Implementation of a new browser tool called 'Moodboard' (Node.js + Vue.js).",
"P3": "Development of 'PAX', a tool for data exchange between the DMIx cloud and customer PLM/ERP systems, including CI/CD integration."
}
},
"COMPANY5": {
"COMPANY": "Assyst GmbH",
"ROLE": "Team leadership",
"TIME": "Sep. 2015 Feb. 2021",
"HIGHLIGHTS": {
"P1": "Team lead of the Vidya software department, including disciplinary responsibility and interviews.",
"P2": "Led several projects with external partners and freelancers.",
"P3": "Managed strategic initiatives in 3D software development."
}
},
"COMPANY4": {
"COMPANY": "Assyst GmbH",
"ROLE": "Software engineer",
"TIME": "Apr. 2010 Feb. 2021",
"HIGHLIGHTS": {
"P1": "Worked on core technologies such as algorithms, simulation, rendering, and collision detection.",
"P2": "Used technologies including Java, OpenCL, OpenGL, GLSL shaders, C++, and REST interfaces.",
"P3": "Participated in national and international research projects (EU7 and ZIM)."
}
},
"COMPANY3": {
"COMPANY": "Assyst GmbH",
"ROLE": "Internship and Diploma",
"TIME": "Apr. 2009 Apr. 2010",
"HIGHLIGHTS": {
"P1": "Implemented production features in the real-time cloth simulation software Vidya.",
"P2": "Conducted research and literature review for the diploma thesis.",
"P3": "Successfully implemented the diploma topic in Vidya."
}
},
"COMPANY2": {
"COMPANY": "TH Bingen (University of Applied Sciences)",
"ROLE": "Tutorial for fundamentals of Java programming",
"TIME": "Apr. 2008 Aug. 2008",
"HIGHLIGHTS": {
"P1": "Preparation of practical and theoretical course material.",
"P2": "Held a 20-hour lecture series for the bioinformatics programme.",
"P3": "Provided assistance during practical programming exercises."
}
},
"COMPANY1": {
"COMPANY": "TH Bingen (University of Applied Sciences)",
"ROLE": "Research Asssitent",
"TIME": "Oct. 2007 Apr. 2008",
"HIGHLIGHTS": {
"P1": "Evaluation of various Web 2.0 technologies.",
"P2": "Implementation of a Java-based interface for Microsoft Excel.",
"P3": "Integration of the MIT Exhibit framework and preparation for CeBIT 2008."
}
},
"COMPANY0": {
"COMPANY": "Chamaeleon AG",
"ROLE": "Training as an IT specialist in application development",
"TIME": "Jul. 2002 Jun. 2005",
"HIGHLIGHTS": {
"P1": "Development in PERL, PHP and ASP.",
"P2": "Porting, maintenance and reengineering of existing software.",
"P3": "Regular performance of system tests and quality controls, as well as their documentation."
}
}
},
"PROJECT": {
"P2": {
"TITLE": "Playground",
"DESCRIPTION": "This project is, as the name suggests, a personal playground that will grow over time. It showcases various private projects Im working on and documents their progress, key ideas, and milestones.",
"LINK_EXTERNAL": "andreas-dahm.eu",
"LINK_INTERNAL": "Project details",
"HIGHLIGHTS": {
"P1": "Using modern technologies and CI/CD pipelines (Angular 20+, Spring Boot 4, GitHub).",
"P2": "Showcasing personal projects and improving algorithmic skills over time.",
"P3": "Deepening knowledge in JavaScript/TypeScript, Angular, Spring Boot and related technologies through hands-on practice."
}
},
"P1": {
"TITLE": "El Mucho",
"DESCRIPTION": "This is my first published game on Steam. I developed it together with my brother, fulfilling one of my personal goals: creating and releasing my own video game.",
"LINK_EXTERNAL": "Steam Store",
"LINK_INTERNAL": "Project details",
"HIGHLIGHTS": {
"P1": "Publishing a game on Steam and integrating the Steam API.",
"P2": "Designing, planning and developing a complete game from scratch.",
"P3": "Implementing complex algorithms, including a custom A* pathfinding system and game AI logic."
}
},
"P0": {
"TITLE": "Game Jams",
"DESCRIPTION": "This section showcases several of my past game jam creations. Game jams are a great way to explore new game ideas and quickly validate whether a game loop works. The tight time constraints force you to focus, and its always exciting to see what can be achieved within such a short timeframe.",
"LINK_EXTERNAL": "Itch.io Collection",
"LINK_INTERNAL": "Project details",
"HIGHLIGHTS": {
"P1": "Planning a realistic project scope with a team that can be built within 48 hours.",
"P2": "Learning to stay focused and work effectively under strict time constraints.",
"P3": "Experiencing the joy of creating a playable game in a short timeframe and seeing others enjoy it."
}
},
"DIPLOMA": {
"TITLE": "Diploma thesis - Collision detection and handling of complex garments.",
"DESCRIPTION": "The thesis deals with the detection and handling of collisions between and within individual items of clothing in real time. This is particularly challenging due to the flexibility of fabrics and their varying properties.",
"LINK_INTERNAL": "Project details",
"HIGHLIGHTS": {
"P1": "Real-time handling of collision detection and response.",
"P2": "Understanding and evaluating scientific papers.",
"P3": "Adaptation and further development of previous research work."
}
},
"TRIBBLE": {
"TITLE": "Homeserver 'Tribble'",
"DESCRIPTION": "This project is about setting up and maintaining my own homeserver. It runs several Docker containers like Gitea, Jellyfin, and more. It's a great learning experience in self-hosting and system administration.",
"LINK_INTERNAL": "Project details",
"HIGHLIGHTS": {
"P1": "Self-hosting of various services using Docker.",
"P2": "CI/CD pipeline for the personal website using Gitea.",
"P3": "Secure remote access with Tailscale and Traefik."
}
}
},
"EDUCATION": {
"E6": {
"WHERE": "FH Bingen (University of Applied Sciences)",
"WHEN": "2006 2010",
"WHAT": "Diploma (FH), Applied Computer Science (final grade 1.4)"
},
"E5": {
"WHERE": "FH Koblenz (University of Applied Sciences)",
"WHEN": "2005 2006",
"WHAT": "1 semester of Engineering Informatics"
},
"E4": {
"WHERE": "BBS Montabaur",
"WHEN": "2002 2005",
"WHAT": "Apprenticeship as IT Specialist for Application Development"
},
"E3": {
"WHERE": "BBS Andernach Higher Vocational School (Computer Science)",
"WHEN": "2000 2002",
"WHAT": "University entrance qualification (Fachhochschulreife)"
},
"E2": {
"WHERE": "BBS Andernach Vocational School for Technology (Electrical Engineering)",
"WHEN": "1998 2000",
"WHAT": "Secondary school certificate (Realschulabschluss)"
},
"E1": {
"WHERE": "Hauptschule Hinter Burg Mayen (Albert Schweitzer Realschule Plus)",
"WHEN": "1995 1998",
"WHAT": "Lower secondary school certificate (Hauptschulabschluss)"
},
"E0": {
"WHERE": "Albert Schweitzer Realschule Mayen",
"WHEN": "1993 1995",
"WHAT": "No degree (transferred to lower secondary school)"
}
}
},
"PROJECTS": {
"DOWNLOAD": "Download",
"READ_MORE": "Read More",
"LINK_TO_PROJECT": "To the project",
"CLOSE": "Close",
"PLAYGROUND": {
"TITLE": "Playground Website",
"SHORT_DESCRIPTION": "This is about this website.",
"INTRODUCTION": "This project was mainly started as a kind of “playground”, hence the name. The plan is to expand the site over time. New projects will appear here, or I will continue to expand the site itself because I want to try out new things in the field of web technologies.",
"BULLET_1": "Using modern technologies and CI/CD pipelines (Angular 20+, Spring Boot 4, GitHub).",
"BULLET_2": "Showcasing personal projects and improving algorithmic skills over time.",
"BULLET_3": "Deepening knowledge in JavaScript/TypeScript, Angular, Spring Boot and related technologies through hands-on practice.",
"BULLET_4": "The site is open source and available on GitHub."
},
"TRIBBLE": {
"TITLE": "Trouble with Tribble",
"SHORT_DESCRIPTION": "A project detailing the setup and maintenance of a home server running various Docker containers for self-hosting services.",
"INTRODUCTION": "This project documents the journey of setting up a personal home server, nicknamed \"Tribble\". It involves installing Ubuntu Server and containerizing services like Gitea for version control, Jellyfin for media streaming, and AdGuard Home for network-wide ad-blocking. The server is connected via Traefik as a reverse proxy and Tailscale for secure networking, enabling the self-hosted CI/CD pipeline for this website.",
"BULLET_1": "Self-hosting of various services using Docker.",
"BULLET_2": "CI/CD pipeline for the personal website using Gitea.",
"BULLET_3": "Secure remote access with Tailscale and Traefik.",
"BULLET_4": "Network-wide ad-blocking with AdGuard Home."
},
"EL_MUCHO": {
"TITLE": "El Mucho",
"SHORT_DESCRIPTION": "This is about my first game on steam.",
"INTRODUCTION": "El Mucho is a turn-based tactical RPG set in a fictional world called Liberika. It is inspired by old classics such as Langrisser, also known as Warsong. El Mucho is about defending the world against attacks from nasty monsters.",
"BULLET_1": "Publishing a game on Steam and integrating the Steam API.",
"BULLET_2": "Designing, planning and developing a complete game from scratch.",
"BULLET_3": "Implementing complex algorithms, including a custom A* pathfinding system and game AI logic.",
"BULLET_4": "The game was developed with Unity and C#."
},
"GAME_JAMS": {
"TITLE": "Game Jams",
"SHORT_DESCRIPTION": "This is about my participation at several game jams.",
"INTRODUCTION": "Since I am interested in game development, game jams are ideal for me to focus on new ideas and develop prototypes to see whether game ideas work or not. I have participated in several game jams over the past few years and summarise my experiences here.",
"BULLET_1": "Planning a realistic project scope with a team that can be built within 48 hours.",
"BULLET_2": "Learning to stay focused and work effectively under strict time constraints.",
"BULLET_3": "Experiencing the joy of creating a playable game in a short timeframe and seeing others enjoy it.",
"BULLET_4": "All projects are available and playable on Itch.io."
},
"DIPLOMA": {
"TITLE": "Diploma thesis",
"SHORT_DESCRIPTION": "Collision detection and handling of complex garments.",
"INTRODUCTION": "The thesis deals with the detection and handling of collisions between and within individual items of clothing in real time. This is particularly challenging due to the flexibility of fabrics and their varying properties.",
"BULLET_1": "Real-time handling of collision detection and response.",
"BULLET_2": "Understanding and evaluating scientific papers.",
"BULLET_3": "Adaptation and further development of previous research work.",
"BULLET_4": "The thesis was written with C++ and OpenGL and integrated into the Vidya software."
}
},
"IMPRINT": {
"TITLE" : "Imprint",
"PARAGRAPH": "Information pursuant to Section 5 DDG",
"COUNTRY": "Germany",
"CONTACT": "Contact"
},
"PATHFINDING": {
"TITLE": "Pathfinding Algorithms",
"START_NODE": "Start Node",
"END_NODE": "End Node",
"WALL": "Wall",
"CLEAR_NODE": "Clear",
"DIJKSTRA": "Dijkstra",
"ASTAR": "A*",
"CLEAR_BOARD": "Clear Board",
"CLEAR_PATH": "Clear Path",
"VISITED": "Visited",
"PATH": "Path",
"ALERT": {
"START_END_NODES": "Please select a start and end node before running the algorithm."
}
}
}