{"data":{"all":{"edges":[{"node":{"frontmatter":{"listName":"🎨 /Etch-a-sketch","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/etch-a-sketch","popupImageAlt":"Etch a sketch app","popupImageSrc":"etch-a-sketch.png","popupLiveLink":"https://etch-a-sketch.pantak.net/","techIcons":["html5","css3","javascript"],"title":"Etch-a-sketch","slug":"projects/etch-a-sketch","video":"false","added":"2021-08-01"},"html":"<p>This mini-project was one of the first I have ever built. It is a simple app that creates a grid with desired length and colors squares on hover. App is written with HTML, CSS, and vanilla JavaScript and was my first hands-on experience with DOM manipulation.  Looking back it was a simple but essential project to understand the underlying logic of DOM manipulation and core HTML and CSS concepts.\nPlus - 5-year-olds love it!</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/etch-a-sketch.md"}},{"node":{"frontmatter":{"listName":"🍒 /Sunnyside-Agency","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/Sunnyside","popupImageAlt":"Sunnyside agency screenshot","popupImageSrc":"SunnysideSS.png","popupLiveLink":"https://sunnyside.pantak.net/","techIcons":["html5","css3","javascript","react","tailwindcss"],"title":"Sunnyside Agency landing page","slug":"projects/sunnyside","video":"false","added":"2021-08-02"},"html":"<h3>Overview</h3>\n<p>The project was a solution to <a href=\"https://www.frontendmentor.io/challenges/sunnyside-agency-landing-page-7yVs3B6ef\" target=\"_blank\" rel=\"noopener\"><span>Sunnyside agency landing page challenge.</span></a>\nI decided that my portfolio of projects is lacking something good-looking and well designed so coding that landing page would be a good experience and asset.</p>\n<h3>The challenge</h3>\n<p>This was my first project using Tailwind CSS. Utility and Mobile First CSS was a challenge itself. Nevertheless, the experience was really good and allowed me to create this project in a little more than 24 hours.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/sunnyside.md"}},{"node":{"frontmatter":{"listName":"📈 /Expenses Analyzer","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/expenses-analyzer","popupImageAlt":"Expenses analyzer screenshot","popupImageSrc":"expensesAnalyzer.png","popupLiveLink":"https://expenses-analyzer.pantak.net/","techIcons":["react","html5","css3","bootstrap","d3dotjs"],"title":"Expenses Analyzer","slug":"projects/expenses-analyzer","video":"false","added":"2021-08-05"},"html":"<p>Expenses analyzer is a React-based app, that allows the user to analyze bank statements from (at the moment) polish Mbank bank accounts.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/expensesAnalyzer.md"}},{"node":{"frontmatter":{"listName":"🌎 /Country Quiz","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/country-quiz","popupImageAlt":"Country Quiz screenshot","popupImageSrc":"country-quiz.webp","popupLiveLink":"https://country-quiz.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"Country Quiz","slug":"projects/country-quiz","video":"false","added":"2021-08-07"},"html":"<p>Country quiz is a relatively simple app that utilizes RESTCountries API to create a quiz about world countries. It was a challenge from devChallanges.io which provided the idea and a set of user stories to build the app.</p>\n<p>I wanted to utilize the RESTCountries API since I first heard about it. My first take on it was to create a SPA (Single Page Application) that provided info about a particular country. It would be a decent learning experience nevertheless boring and not interactive. When I got the quiz idea I was sold. Managed to code it in two days thanks to TailwindCSS and React. The outcome looks good, is fun and useful.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/country-quiz.md"}},{"node":{"frontmatter":{"listName":"🔗 /Shortly","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/url-shortener","popupImageAlt":"Shortly URL shortener screenshot","popupImageSrc":"Shortly.webp","popupLiveLink":"https://shortly.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"Shortly","slug":"projects/shortly","video":"false","added":"2021-08-08"},"html":"<h3>Overview</h3>\n<p>The project was a solution to <a href=\"https://www.frontendmentor.io/challenges/url-shortening-api-landing-page-2ce3ob-G\" target=\"_blank\" rel=\"noopener\"><span>URL Shortener challenge.</span></a>\nIt was a good challenge to solidify my external API usage, responsive layout, and React skills.</p>\n<h3>The challenge</h3>\n<p>The challenge was to integrate with the shrtcode API to create shortened URLs and display them like in the designs.\nUser stories that needed to be fulfilled:</p>\n<ul>\n<li>-View the optimal layout for the site depending on their device's screen size</li>\n<li>-Shorten any valid URL</li>\n<li>-See a list of their shortened links, even after refreshing the browser</li>\n<li>-Copy the shortened link to their clipboard in a single click</li>\n<li>-Receive an error message when the form is submitted if The input field is empty</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/shortly.md"}},{"node":{"frontmatter":{"listName":"🎯 /IP Tracker","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/ip-tracker","popupImageAlt":"IP Tracker screenshot","popupImageSrc":"ip-tracker.webp","popupLiveLink":"https://ip-tracker.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"IP Tracker","slug":"projects/ip-tracker","video":"/IP-tracker-view.mp4","added":"2021-08-24"},"html":"<h3>Overview</h3>\n<p>The challenge consisted of three external API's usage, state management, responsive layout all wrapped in a single-page React App.\nThe project was a solution to <a href=\"https://www.frontendmentor.io/challenges/ip-address-tracker-I8-0yYAH0\" target=\"_blank\" rel=\"noopener\"><span>IP-Tracker challenge.</span></a></p>\n<h3>The challenge</h3>\n<p>User stories that needed to be fulfilled:</p>\n<ul>\n<li>-View the optimal layout for the site depending on their device's screen size</li>\n<li>-See hover states for all interactive elements on the page</li>\n<li>-See their own IP Address on the map on the initial page load</li>\n<li>-Search for any IP addresses or domains and see the key information and location</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/ip-tracker.md"}},{"node":{"frontmatter":{"listName":"📸 /My-Unsplash","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/my-unsplash","popupImageAlt":"App screenshot","popupImageSrc":"My-Unsplash-ss.png","popupLiveLink":"https://my-unsplash-mu.vercel.app/","techIcons":["react","firebase","redux","html5","css3","tailwindcss","materialdesign"],"title":"My Unsplash","slug":"projects/my-unsplash","video":"/myUnsplash.mp4","added":"2021-10-01"},"html":"<p>My Unsplash is my solution to <a href=\"https://devchallenges.io/challenges/rYyhwJAxMfES5jNQ9YsP\">challenge</a>. This is my version of the application based on the popular Unsplash website. The application is a digital gallery that allows you to add and remove photos and display them in a Masonry layout.</p>\n<p>Does that mean all I had to do was copy the finished design and called it my project? Not at all. For this project, I had design files at my disposal, but I had to translate their implementation into TailwindCSS. In addition, I had to choose a solution responsible for Masonry Layout and create all facilities responsible for adding and storing photos.</p>\n<h3>What features does My Unsplash have</h3>\n<ul>\n<li>The application presents the added photos in the Masonry layout - It is a system in which one axis uses a strict grid system - most often in the case of columns, while the other axis (rows) are matched to the gaps formed by shorter elements. The items in the following lines float up to fill the gaps completely.</li>\n<li>Users can add photos to the gallery using a dedicated drag'n'drop component</li>\n<li>New photos are displayed immediately after being added at the very top of the gallery</li>\n<li>A progress bar is displayed while adding images</li>\n<li>Users can delete photos from the gallery</li>\n<li>Users can search photos by name</li>\n<li>Photos are dynamically loaded using the infinite scroll</li>\n<li>Dark and light mode, the photos adjust the contrast accordingly for easier viewing against a dark background</li>\n<li>The website works as an SPA (Single Page Application)</li>\n<li>The application is responsive and should look correct on all types of devices that support modern browsers</li>\n<li>IP Tracker can be operated with just the keyboard</li>\n</ul>\n<h3>What features does My Unsplash not have</h3>\n<ul>\n<li>The site does not have login and user accounts, so each user can add photos with a maximum size of 5MB</li>\n<li>Due to the above, in theory, anyone can remove all photos from the gallery (the question remains, what for?). I do not aspire to compete with professional websites such as Unsplash or Pexels, and the project is only a hobby solution, so I did not implement login and user accounts.</li>\n<li>Due to the fact that the page loads only a certain number of photos when searching, it is limited to searching only among those that have already been downloaded. Due to time constraints, I did not create another option, although in the future I may solve it by creating a separate search window and displaying results based on the searched phrase.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/myUnsplash.md"}},{"node":{"frontmatter":{"listName":"👨‍🔬 /2-Input Perceptron","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/2-Input-Single-Layer-Perceptron","popupImageAlt":"2-Input single layer Perceptron screenshot","popupImageSrc":"https://github.com/Kielx/2-Input-Single-Layer-Perceptron/raw/master/screenshots/Instruction4.png?raw=true","popupLiveLink":"https://mybinder.org/v2/gh/Kielx/2-Input-Single-Layer-Perceptron/HEAD?labpath=Perceptron.ipynb","techIcons":["python"],"title":"2-Input single layer Perceptron","slug":"projects/perceptron","video":"false","added":"2022-05-05"},"html":"<p>In my introduction to artificial intelligence class during my computer science studies I was tasked with calculating output of 2-input single layer perceptron by hand. As with all hand calculations they were prone to errors. What's more - I had no way to check, whether my calculations were correct. I searched for similar program on the web with no results. Therefore, I decided to create one for myself. Probably I could have found a library for this task, but I thought that it will be a good learning project nevertheless. You may find this notebook useful if you are tasked with similar problem.</p>\n<p>This notebook solves the problem of presenting the user with results and visualisation of all the steps that perceptron algorithm took while calculating the decision boundary for 2 input points.</p>\n<p>It is a simple example, and I do not guarantee its correctness. It works but further testing is required. I am by no mean an expert in the field of machine learning, deep learning or artificial intelligence. I created this notebook as a way to reinforce my learning and provide myself with visual representation and steps that perceptron took to get to the solution. Descriptions provided may not be accurate, may lack sufficient details and in some cases may be plainly wrong. As I mentioned earlier this notebook might be useful to someone who is a student, tasked with calculating perceptron outcome by hand, to check whether their calculations are correct or not.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/perceptron.md"}},{"node":{"frontmatter":{"listName":"⚡ /Arduino Knight Rider","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/arduino-knight-rider","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/arduino-knight-rider/master/assets/Animation.gif","popupLiveLink":"https://www.tinkercad.com/things/h6UGRvyt57M?sharecode=AdzrjSHtaL6RfG9oV-UQ7uABUGXwvTwtX3bNIyHkgfQ","techIcons":["arduino","autodesk"],"title":"Arduino Knight Rider","slug":"projects/arduino-knight-rider","video":"false","added":"2023-01-09"},"html":"<p>This is an Arduino project that creates a \"Knight Rider\" effect, also known as Larson Scanner. The Arduino Knight Rider is a circuit that features a series of LEDs that move back and forth in a \"scanning\" motion, creating a dynamic and eye-catching effect. The name Larson scanner is derived from Glen A. Larson, the creator of the original \"Knight Rider\" television show, which featured a car with a similar light sequence.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/arduino-knight-rider.md"}},{"node":{"frontmatter":{"listName":"💾 /Insurance-DB","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Insurance-company-database","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Insurance-company-database/master/images/data_warehouse.png","popupLiveLink":null,"techIcons":["oracle","python"],"title":"Insurance Company Database","slug":"projects/insurance-company-database","video":"false","added":"2023-01-14"},"html":"<p>The goal of the project was to create a fragment of an insurance company's database and a data warehouse based on it. The database contains information about the insurance company's customers, employees and branches, as well as the insurance policies between these entities. The database and warehouse designed this way allows for easy visualization and development of summaries of the work of all branches, employees, as well as policies taken by clients. The assumption is that a company can offer different types of policies - e.g., home insurance, vehicle insurance - and each customer can take out an unlimited number of policies. The project was developed entirely in the environment offered by Oracle, using SQL Developer and SQL Developer Data Modeler, as well as the SQL*Loader tool. The scripts generating the data with which the database was fed were written in Python using the Faker library.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/insurance-company-database.md"}},{"node":{"frontmatter":{"listName":"🔍 /AnyGrabber","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/AnyGrabber","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/anygrabber/master/assets_readme/screenshot1.png","popupLiveLink":"https://anygrabber.pantak.net","techIcons":["python"],"title":"AnyGrabber","slug":"projects/anygrabber","video":"false","added":"2023-07-14"},"html":"<p>AnyGrabber simplifies the process of searching for AnyDesk logs, extracting relevant data concerning IP addresses used\nfor logging in, along with corresponding dates. It also generates .txt and .csv reports based on the data retrieved. The user-friendly interface and localization features make it easy for anyone to use, regardless of technical proficiency. It's portable and can be used on any modern Windows machine without the need for\ninstallation.</p>\n<h2>Key Features</h2>\n<ul>\n<li>Search for logs in default and custom locations</li>\n<li>Extraction of login date and IP address/es</li>\n<li>Generation of checksums for retrieved files</li>\n<li>Creation of .txt and .csv reports based on found data</li>\n<li>Support for English and Polish languages</li>\n<li>User-friendly interface</li>\n<li>Portable</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/anyGrabber.md"}},{"node":{"frontmatter":{"listName":"📍 /Spottedify","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Spottedify","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Spottedify/master/assets/readme2.png","popupLiveLink":"https://spottedify.netlify.app/","techIcons":["react","firebase","typescript","expo","githubactions"],"title":"Spottedify","slug":"projects/spottedify","video":"false","added":"2024-09-25"},"html":"<h2>Project Overview</h2>\n<p>This project utilizes React, React Native, and Firebase to deliver a robust, scalable application, with Expo facilitating streamlined development and deployment. The focus is on creating a highly responsive, accessible application that adheres to WCAG standards, ensuring a seamless user experience across both web and mobile platforms.</p>\n<h3>Technologies Used:</h3>\n<ul>\n<li><strong>React Native</strong> with <strong>nativeBase</strong>: Building a cross-platform UI with a responsive and intuitive design.</li>\n<li><strong>Expo</strong>: Simplifying development, testing, and deployment for mobile applications.</li>\n<li><strong>Firebase (Auth &#x26; Firestore)</strong>: Real-time database and user authentication system.</li>\n<li><strong>React Navigation</strong>: Handling multiple navigation flows, including bottom tab and stack navigation.</li>\n<li><strong>TypeScript</strong>: Ensuring type safety and clean, maintainable code.</li>\n<li><strong>Geolocation APIs</strong>: Implementing reverse geocoding to filter listings based on user location.</li>\n<li><strong>Continuous Integration (CI)</strong> via GitHub: Ensuring code quality with linting (eslint) and Prettier formatting.</li>\n</ul>\n<h2>Features</h2>\n<ul>\n<li><strong>Listings Management</strong>: Create, edit, and delete listings with ease.</li>\n<li><strong>Photo Integration</strong>: Upload photos from the device camera or files.</li>\n<li><strong>User Authentication</strong>: Secure login, registration, and password recovery (Firebase Auth).</li>\n<li><strong>Geolocation</strong>: Filter and manage listings based on user location.</li>\n<li><strong>Dark Mode</strong>: Full support for dark mode for better accessibility and user comfort.</li>\n<li><strong>Responsive Design</strong>: Optimized for both web and mobile, maintaining a consistent look and feel.</li>\n<li><strong>Favorites and Likes</strong>: Users can like listings and view their own posts or favorites.</li>\n<li><strong>Profile Management</strong>: Users can update personal profiles and manage their listings.</li>\n<li><strong>Advanced Loading States</strong>: Skeleton loaders provide a smooth user experience during data fetches.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/spottedify.md"}},{"node":{"frontmatter":{"listName":"🎮 /Super Arkanoid","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Arkanoid","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Arkanoid/master/images/readme2.gif","popupLiveLink":null,"techIcons":["cplusplus","sfml"],"title":"Super Arkanoid","slug":"projects/arkanoid","video":"false","added":"2024-09-25"},"html":"<p><strong>Super Arkanoid</strong> is a modern C++ implementation of the classic brick-breaking game, built using <strong>SFML</strong>. Break bricks, catch power-ups, and enjoy 8-bit nostalgia!</p>\n<h2>🚀 Features</h2>\n<ul>\n<li>\n<p>🧱 <strong>Classic Arkanoid Gameplay</strong>: Destroy bricks by bouncing the ball off your paddle. Keep the ball from slipping past your paddle, or you'll lose a life!</p>\n</li>\n<li>\n<p>🎲 <strong>Randomly Generated Levels</strong>: Each playthrough generates a fresh, random layout of bricks, ensuring no two games are alike.</p>\n</li>\n<li>\n<p>🎶 <strong>8-Bit Music</strong>: Relive the 80s with authentic retro tunes that capture the spirit of classic arcade games.</p>\n</li>\n<li>\n<p>⚡ <strong>Power-ups</strong>: Collect power-ups as they fall from broken bricks. Enhance your gameplay by expanding your paddle, adding extra balls, or even unlocking a laser cannon!</p>\n</li>\n<li>\n<p>✨ <strong>Particle Effects</strong>: Experience visually captivating particle effects as bricks shatter, adding a modern visual twist to the classic action.</p>\n</li>\n<li>\n<p>❤️ <strong>Life Indicator</strong>: Keep track of your remaining lives with the handy life counter feature.</p>\n</li>\n<li>\n<p>🔫 <strong>Paddle &#x26; Laser Mechanics</strong>: Skillfully control the paddle to bounce the ball and break bricks, or use your laser to obliterate them directly!</p>\n</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/arkanoid.md"}},{"node":{"frontmatter":{"listName":"👨‍💻 /About","nameOfClass":null,"popupGithubLink":"https://github.com/Kielx","popupImageAlt":"Cartoon photo of myself","popupImageSrc":"mojephoto.jpg","popupLiveLink":null,"techIcons":["javascript","nodedotjs","react","html5","css3","cplusplus","c","python","mongodb","express","bootstrap","sass","heroku","netlify","postman","d3dotjs","archlinux","linux","windowsterminal","fontawesome","tailwindcss","amazondynamodb","amazonaws"],"title":"About me","slug":"/about","video":"false","added":null},"html":"<h2>Krzysztof Pantak</h2>\n<ul>\n<li>💡 Well-rounded software engineer with skills in several programming languages. Passionate about creating a variety of applications, looking at programming as a way to solve problems and new interesting challenges. Ready to take on new projects and collaborate on innovative solutions.</li>\n<li>👨‍🎓 Final-year CS Student at the Kielce University of Technology.</li>\n<li>⚡ Creating applications in JavaScript, TypeScript, C, C++, Python and lately experimenting with C# and .Net.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/info/about.md"}}]},"projects":{"edges":[{"node":{"frontmatter":{"listName":"📍 /Spottedify","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Spottedify","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Spottedify/master/assets/readme2.png","popupLiveLink":"https://spottedify.netlify.app/","techIcons":["react","firebase","typescript","expo","githubactions"],"title":"Spottedify","slug":"projects/spottedify","video":"false","added":"2024-09-25"},"html":"<h2>Project Overview</h2>\n<p>This project utilizes React, React Native, and Firebase to deliver a robust, scalable application, with Expo facilitating streamlined development and deployment. The focus is on creating a highly responsive, accessible application that adheres to WCAG standards, ensuring a seamless user experience across both web and mobile platforms.</p>\n<h3>Technologies Used:</h3>\n<ul>\n<li><strong>React Native</strong> with <strong>nativeBase</strong>: Building a cross-platform UI with a responsive and intuitive design.</li>\n<li><strong>Expo</strong>: Simplifying development, testing, and deployment for mobile applications.</li>\n<li><strong>Firebase (Auth &#x26; Firestore)</strong>: Real-time database and user authentication system.</li>\n<li><strong>React Navigation</strong>: Handling multiple navigation flows, including bottom tab and stack navigation.</li>\n<li><strong>TypeScript</strong>: Ensuring type safety and clean, maintainable code.</li>\n<li><strong>Geolocation APIs</strong>: Implementing reverse geocoding to filter listings based on user location.</li>\n<li><strong>Continuous Integration (CI)</strong> via GitHub: Ensuring code quality with linting (eslint) and Prettier formatting.</li>\n</ul>\n<h2>Features</h2>\n<ul>\n<li><strong>Listings Management</strong>: Create, edit, and delete listings with ease.</li>\n<li><strong>Photo Integration</strong>: Upload photos from the device camera or files.</li>\n<li><strong>User Authentication</strong>: Secure login, registration, and password recovery (Firebase Auth).</li>\n<li><strong>Geolocation</strong>: Filter and manage listings based on user location.</li>\n<li><strong>Dark Mode</strong>: Full support for dark mode for better accessibility and user comfort.</li>\n<li><strong>Responsive Design</strong>: Optimized for both web and mobile, maintaining a consistent look and feel.</li>\n<li><strong>Favorites and Likes</strong>: Users can like listings and view their own posts or favorites.</li>\n<li><strong>Profile Management</strong>: Users can update personal profiles and manage their listings.</li>\n<li><strong>Advanced Loading States</strong>: Skeleton loaders provide a smooth user experience during data fetches.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/spottedify.md"}},{"node":{"frontmatter":{"listName":"🎮 /Super Arkanoid","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Arkanoid","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Arkanoid/master/images/readme2.gif","popupLiveLink":null,"techIcons":["cplusplus","sfml"],"title":"Super Arkanoid","slug":"projects/arkanoid","video":"false","added":"2024-09-25"},"html":"<p><strong>Super Arkanoid</strong> is a modern C++ implementation of the classic brick-breaking game, built using <strong>SFML</strong>. Break bricks, catch power-ups, and enjoy 8-bit nostalgia!</p>\n<h2>🚀 Features</h2>\n<ul>\n<li>\n<p>🧱 <strong>Classic Arkanoid Gameplay</strong>: Destroy bricks by bouncing the ball off your paddle. Keep the ball from slipping past your paddle, or you'll lose a life!</p>\n</li>\n<li>\n<p>🎲 <strong>Randomly Generated Levels</strong>: Each playthrough generates a fresh, random layout of bricks, ensuring no two games are alike.</p>\n</li>\n<li>\n<p>🎶 <strong>8-Bit Music</strong>: Relive the 80s with authentic retro tunes that capture the spirit of classic arcade games.</p>\n</li>\n<li>\n<p>⚡ <strong>Power-ups</strong>: Collect power-ups as they fall from broken bricks. Enhance your gameplay by expanding your paddle, adding extra balls, or even unlocking a laser cannon!</p>\n</li>\n<li>\n<p>✨ <strong>Particle Effects</strong>: Experience visually captivating particle effects as bricks shatter, adding a modern visual twist to the classic action.</p>\n</li>\n<li>\n<p>❤️ <strong>Life Indicator</strong>: Keep track of your remaining lives with the handy life counter feature.</p>\n</li>\n<li>\n<p>🔫 <strong>Paddle &#x26; Laser Mechanics</strong>: Skillfully control the paddle to bounce the ball and break bricks, or use your laser to obliterate them directly!</p>\n</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/arkanoid.md"}},{"node":{"frontmatter":{"listName":"🔍 /AnyGrabber","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/AnyGrabber","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/anygrabber/master/assets_readme/screenshot1.png","popupLiveLink":"https://anygrabber.pantak.net","techIcons":["python"],"title":"AnyGrabber","slug":"projects/anygrabber","video":"false","added":"2023-07-14"},"html":"<p>AnyGrabber simplifies the process of searching for AnyDesk logs, extracting relevant data concerning IP addresses used\nfor logging in, along with corresponding dates. It also generates .txt and .csv reports based on the data retrieved. The user-friendly interface and localization features make it easy for anyone to use, regardless of technical proficiency. It's portable and can be used on any modern Windows machine without the need for\ninstallation.</p>\n<h2>Key Features</h2>\n<ul>\n<li>Search for logs in default and custom locations</li>\n<li>Extraction of login date and IP address/es</li>\n<li>Generation of checksums for retrieved files</li>\n<li>Creation of .txt and .csv reports based on found data</li>\n<li>Support for English and Polish languages</li>\n<li>User-friendly interface</li>\n<li>Portable</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/anyGrabber.md"}},{"node":{"frontmatter":{"listName":"💾 /Insurance-DB","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/Insurance-company-database","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/Insurance-company-database/master/images/data_warehouse.png","popupLiveLink":null,"techIcons":["oracle","python"],"title":"Insurance Company Database","slug":"projects/insurance-company-database","video":"false","added":"2023-01-14"},"html":"<p>The goal of the project was to create a fragment of an insurance company's database and a data warehouse based on it. The database contains information about the insurance company's customers, employees and branches, as well as the insurance policies between these entities. The database and warehouse designed this way allows for easy visualization and development of summaries of the work of all branches, employees, as well as policies taken by clients. The assumption is that a company can offer different types of policies - e.g., home insurance, vehicle insurance - and each customer can take out an unlimited number of policies. The project was developed entirely in the environment offered by Oracle, using SQL Developer and SQL Developer Data Modeler, as well as the SQL*Loader tool. The scripts generating the data with which the database was fed were written in Python using the Faker library.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/insurance-company-database.md"}},{"node":{"frontmatter":{"listName":"⚡ /Arduino Knight Rider","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/arduino-knight-rider","popupImageAlt":"App screenshot","popupImageSrc":"https://raw.githubusercontent.com/Kielx/arduino-knight-rider/master/assets/Animation.gif","popupLiveLink":"https://www.tinkercad.com/things/h6UGRvyt57M?sharecode=AdzrjSHtaL6RfG9oV-UQ7uABUGXwvTwtX3bNIyHkgfQ","techIcons":["arduino","autodesk"],"title":"Arduino Knight Rider","slug":"projects/arduino-knight-rider","video":"false","added":"2023-01-09"},"html":"<p>This is an Arduino project that creates a \"Knight Rider\" effect, also known as Larson Scanner. The Arduino Knight Rider is a circuit that features a series of LEDs that move back and forth in a \"scanning\" motion, creating a dynamic and eye-catching effect. The name Larson scanner is derived from Glen A. Larson, the creator of the original \"Knight Rider\" television show, which featured a car with a similar light sequence.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/arduino-knight-rider.md"}},{"node":{"frontmatter":{"listName":"👨‍🔬 /2-Input Perceptron","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/2-Input-Single-Layer-Perceptron","popupImageAlt":"2-Input single layer Perceptron screenshot","popupImageSrc":"https://github.com/Kielx/2-Input-Single-Layer-Perceptron/raw/master/screenshots/Instruction4.png?raw=true","popupLiveLink":"https://mybinder.org/v2/gh/Kielx/2-Input-Single-Layer-Perceptron/HEAD?labpath=Perceptron.ipynb","techIcons":["python"],"title":"2-Input single layer Perceptron","slug":"projects/perceptron","video":"false","added":"2022-05-05"},"html":"<p>In my introduction to artificial intelligence class during my computer science studies I was tasked with calculating output of 2-input single layer perceptron by hand. As with all hand calculations they were prone to errors. What's more - I had no way to check, whether my calculations were correct. I searched for similar program on the web with no results. Therefore, I decided to create one for myself. Probably I could have found a library for this task, but I thought that it will be a good learning project nevertheless. You may find this notebook useful if you are tasked with similar problem.</p>\n<p>This notebook solves the problem of presenting the user with results and visualisation of all the steps that perceptron algorithm took while calculating the decision boundary for 2 input points.</p>\n<p>It is a simple example, and I do not guarantee its correctness. It works but further testing is required. I am by no mean an expert in the field of machine learning, deep learning or artificial intelligence. I created this notebook as a way to reinforce my learning and provide myself with visual representation and steps that perceptron took to get to the solution. Descriptions provided may not be accurate, may lack sufficient details and in some cases may be plainly wrong. As I mentioned earlier this notebook might be useful to someone who is a student, tasked with calculating perceptron outcome by hand, to check whether their calculations are correct or not.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/perceptron.md"}},{"node":{"frontmatter":{"listName":"📸 /My-Unsplash","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/my-unsplash","popupImageAlt":"App screenshot","popupImageSrc":"My-Unsplash-ss.png","popupLiveLink":"https://my-unsplash-mu.vercel.app/","techIcons":["react","firebase","redux","html5","css3","tailwindcss","materialdesign"],"title":"My Unsplash","slug":"projects/my-unsplash","video":"/myUnsplash.mp4","added":"2021-10-01"},"html":"<p>My Unsplash is my solution to <a href=\"https://devchallenges.io/challenges/rYyhwJAxMfES5jNQ9YsP\">challenge</a>. This is my version of the application based on the popular Unsplash website. The application is a digital gallery that allows you to add and remove photos and display them in a Masonry layout.</p>\n<p>Does that mean all I had to do was copy the finished design and called it my project? Not at all. For this project, I had design files at my disposal, but I had to translate their implementation into TailwindCSS. In addition, I had to choose a solution responsible for Masonry Layout and create all facilities responsible for adding and storing photos.</p>\n<h3>What features does My Unsplash have</h3>\n<ul>\n<li>The application presents the added photos in the Masonry layout - It is a system in which one axis uses a strict grid system - most often in the case of columns, while the other axis (rows) are matched to the gaps formed by shorter elements. The items in the following lines float up to fill the gaps completely.</li>\n<li>Users can add photos to the gallery using a dedicated drag'n'drop component</li>\n<li>New photos are displayed immediately after being added at the very top of the gallery</li>\n<li>A progress bar is displayed while adding images</li>\n<li>Users can delete photos from the gallery</li>\n<li>Users can search photos by name</li>\n<li>Photos are dynamically loaded using the infinite scroll</li>\n<li>Dark and light mode, the photos adjust the contrast accordingly for easier viewing against a dark background</li>\n<li>The website works as an SPA (Single Page Application)</li>\n<li>The application is responsive and should look correct on all types of devices that support modern browsers</li>\n<li>IP Tracker can be operated with just the keyboard</li>\n</ul>\n<h3>What features does My Unsplash not have</h3>\n<ul>\n<li>The site does not have login and user accounts, so each user can add photos with a maximum size of 5MB</li>\n<li>Due to the above, in theory, anyone can remove all photos from the gallery (the question remains, what for?). I do not aspire to compete with professional websites such as Unsplash or Pexels, and the project is only a hobby solution, so I did not implement login and user accounts.</li>\n<li>Due to the fact that the page loads only a certain number of photos when searching, it is limited to searching only among those that have already been downloaded. Due to time constraints, I did not create another option, although in the future I may solve it by creating a separate search window and displaying results based on the searched phrase.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/myUnsplash.md"}},{"node":{"frontmatter":{"listName":"🎯 /IP Tracker","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/ip-tracker","popupImageAlt":"IP Tracker screenshot","popupImageSrc":"ip-tracker.webp","popupLiveLink":"https://ip-tracker.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"IP Tracker","slug":"projects/ip-tracker","video":"/IP-tracker-view.mp4","added":"2021-08-24"},"html":"<h3>Overview</h3>\n<p>The challenge consisted of three external API's usage, state management, responsive layout all wrapped in a single-page React App.\nThe project was a solution to <a href=\"https://www.frontendmentor.io/challenges/ip-address-tracker-I8-0yYAH0\" target=\"_blank\" rel=\"noopener\"><span>IP-Tracker challenge.</span></a></p>\n<h3>The challenge</h3>\n<p>User stories that needed to be fulfilled:</p>\n<ul>\n<li>-View the optimal layout for the site depending on their device's screen size</li>\n<li>-See hover states for all interactive elements on the page</li>\n<li>-See their own IP Address on the map on the initial page load</li>\n<li>-Search for any IP addresses or domains and see the key information and location</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/ip-tracker.md"}},{"node":{"frontmatter":{"listName":"🔗 /Shortly","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/url-shortener","popupImageAlt":"Shortly URL shortener screenshot","popupImageSrc":"Shortly.webp","popupLiveLink":"https://shortly.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"Shortly","slug":"projects/shortly","video":"false","added":"2021-08-08"},"html":"<h3>Overview</h3>\n<p>The project was a solution to <a href=\"https://www.frontendmentor.io/challenges/url-shortening-api-landing-page-2ce3ob-G\" target=\"_blank\" rel=\"noopener\"><span>URL Shortener challenge.</span></a>\nIt was a good challenge to solidify my external API usage, responsive layout, and React skills.</p>\n<h3>The challenge</h3>\n<p>The challenge was to integrate with the shrtcode API to create shortened URLs and display them like in the designs.\nUser stories that needed to be fulfilled:</p>\n<ul>\n<li>-View the optimal layout for the site depending on their device's screen size</li>\n<li>-Shorten any valid URL</li>\n<li>-See a list of their shortened links, even after refreshing the browser</li>\n<li>-Copy the shortened link to their clipboard in a single click</li>\n<li>-Receive an error message when the form is submitted if The input field is empty</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/shortly.md"}},{"node":{"frontmatter":{"listName":"🌎 /Country Quiz","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/country-quiz","popupImageAlt":"Country Quiz screenshot","popupImageSrc":"country-quiz.webp","popupLiveLink":"https://country-quiz.pantak.net/","techIcons":["react","html5","css3","tailwindcss"],"title":"Country Quiz","slug":"projects/country-quiz","video":"false","added":"2021-08-07"},"html":"<p>Country quiz is a relatively simple app that utilizes RESTCountries API to create a quiz about world countries. It was a challenge from devChallanges.io which provided the idea and a set of user stories to build the app.</p>\n<p>I wanted to utilize the RESTCountries API since I first heard about it. My first take on it was to create a SPA (Single Page Application) that provided info about a particular country. It would be a decent learning experience nevertheless boring and not interactive. When I got the quiz idea I was sold. Managed to code it in two days thanks to TailwindCSS and React. The outcome looks good, is fun and useful.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/country-quiz.md"}},{"node":{"frontmatter":{"listName":"📈 /Expenses Analyzer","nameOfClass":"projects-items","popupGithubLink":"https://github.com/Kielx/expenses-analyzer","popupImageAlt":"Expenses analyzer screenshot","popupImageSrc":"expensesAnalyzer.png","popupLiveLink":"https://expenses-analyzer.pantak.net/","techIcons":["react","html5","css3","bootstrap","d3dotjs"],"title":"Expenses Analyzer","slug":"projects/expenses-analyzer","video":"false","added":"2021-08-05"},"html":"<p>Expenses analyzer is a React-based app, that allows the user to analyze bank statements from (at the moment) polish Mbank bank accounts.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/expensesAnalyzer.md"}},{"node":{"frontmatter":{"listName":"🍒 /Sunnyside-Agency","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/Sunnyside","popupImageAlt":"Sunnyside agency screenshot","popupImageSrc":"SunnysideSS.png","popupLiveLink":"https://sunnyside.pantak.net/","techIcons":["html5","css3","javascript","react","tailwindcss"],"title":"Sunnyside Agency landing page","slug":"projects/sunnyside","video":"false","added":"2021-08-02"},"html":"<h3>Overview</h3>\n<p>The project was a solution to <a href=\"https://www.frontendmentor.io/challenges/sunnyside-agency-landing-page-7yVs3B6ef\" target=\"_blank\" rel=\"noopener\"><span>Sunnyside agency landing page challenge.</span></a>\nI decided that my portfolio of projects is lacking something good-looking and well designed so coding that landing page would be a good experience and asset.</p>\n<h3>The challenge</h3>\n<p>This was my first project using Tailwind CSS. Utility and Mobile First CSS was a challenge itself. Nevertheless, the experience was really good and allowed me to create this project in a little more than 24 hours.</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/sunnyside.md"}},{"node":{"frontmatter":{"listName":"🎨 /Etch-a-sketch","nameOfClass":"projects-items miniProjects","popupGithubLink":"https://github.com/Kielx/etch-a-sketch","popupImageAlt":"Etch a sketch app","popupImageSrc":"etch-a-sketch.png","popupLiveLink":"https://etch-a-sketch.pantak.net/","techIcons":["html5","css3","javascript"],"title":"Etch-a-sketch","slug":"projects/etch-a-sketch","video":"false","added":"2021-08-01"},"html":"<p>This mini-project was one of the first I have ever built. It is a simple app that creates a grid with desired length and colors squares on hover. App is written with HTML, CSS, and vanilla JavaScript and was my first hands-on experience with DOM manipulation.  Looking back it was a simple but essential project to understand the underlying logic of DOM manipulation and core HTML and CSS concepts.\nPlus - 5-year-olds love it!</p>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/projects/etch-a-sketch.md"}}]},"info":{"edges":[{"node":{"frontmatter":{"listName":"👨‍💻 /About","nameOfClass":null,"popupGithubLink":"https://github.com/Kielx","popupImageAlt":"Cartoon photo of myself","popupImageSrc":"mojephoto.jpg","popupLiveLink":null,"techIcons":["javascript","nodedotjs","react","html5","css3","cplusplus","c","python","mongodb","express","bootstrap","sass","heroku","netlify","postman","d3dotjs","archlinux","linux","windowsterminal","fontawesome","tailwindcss","amazondynamodb","amazonaws"],"title":"About me","slug":"/about","video":"false","added":null},"html":"<h2>Krzysztof Pantak</h2>\n<ul>\n<li>💡 Well-rounded software engineer with skills in several programming languages. Passionate about creating a variety of applications, looking at programming as a way to solve problems and new interesting challenges. Ready to take on new projects and collaborate on innovative solutions.</li>\n<li>👨‍🎓 Final-year CS Student at the Kielce University of Technology.</li>\n<li>⚡ Creating applications in JavaScript, TypeScript, C, C++, Python and lately experimenting with C# and .Net.</li>\n</ul>","fileAbsolutePath":"/opt/build/repo/src/markdown-pages/info/about.md"}}]}}}