{"id":4408,"date":"2025-09-01T21:16:51","date_gmt":"2025-09-01T19:16:51","guid":{"rendered":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/?page_id=4408"},"modified":"2026-04-09T18:40:30","modified_gmt":"2026-04-09T16:40:30","slug":"aplikacja-biblioteczna","status":"publish","type":"page","link":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/aplikacja-biblioteczna\/","title":{"rendered":"Library app"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4408\" class=\"elementor elementor-4408\">\n\t\t\t\t<div class=\"elementor-element elementor-element-32f1a95e e-con-full e-flex e-con e-parent\" data-id=\"32f1a95e\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-236b8f43 e-flex e-con-boxed e-con e-child\" data-id=\"236b8f43\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ff6ded1 elementor-icon-list--layout-inline elementor-mobile-align-center elementor-align-left elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"1ff6ded1\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<i aria-hidden=\"true\" class=\"icon icon-envelope1\"><\/i>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">natalia.kaczynska.programista@gmail.com<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c6fe923 elementor-widget elementor-widget-shortcode\" data-id=\"c6fe923\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"mega-menu-wrap-secondary_menu\" class=\"mega-menu-wrap\"><div class=\"mega-menu-toggle\"><div class=\"mega-toggle-blocks-left\"><\/div><div class=\"mega-toggle-blocks-center\"><\/div><div class=\"mega-toggle-blocks-right\"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label=\"Show\/hide menu\" class=\"mega-toggle-animated mega-toggle-animated-slider\" type=\"button\" aria-haspopup=\"true\" aria-expanded=\"false\" aria-controls=\"mega-menu-secondary_menu\">\n                  <span class=\"mega-toggle-animated-box\">\n                    <span class=\"mega-toggle-animated-inner\"><\/span>\n                  <\/span>\n                <\/button><\/div><\/div><\/div><ul id=\"mega-menu-secondary_menu\" class=\"mega-menu max-mega-menu mega-menu-horizontal mega-no-js\" data-event=\"hover\" data-effect=\"fade_up\" data-effect-speed=\"400\" data-effect-mobile=\"slide\" data-effect-speed-mobile=\"400\" data-mobile-force-width=\"false\" data-second-click=\"go\" data-document-click=\"collapse\" data-vertical-behaviour=\"standard\" data-breakpoint=\"768\" data-unbind=\"true\" data-mobile-state=\"collapse_all\" data-mobile-direction=\"vertical\" data-hover-intent-timeout=\"300\" data-hover-intent-interval=\"100\"><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-4547\" id=\"mega-menu-item-4547\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/porftolio-v2\/\">Portfolio<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-home mega-align-bottom-left mega-menu-flyout mega-menu-item-3974\" id=\"mega-menu-item-3974\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/\">Homepage<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-3975\" id=\"mega-menu-item-3975\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/about\/\">About me<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-menu-grid mega-align-bottom-left mega-menu-grid mega-menu-item-4304\" id=\"mega-menu-item-4304\"><a class=\"mega-menu-link\" href=\"#\" aria-expanded=\"false\" aria-controls=\"mega-sub-menu-4304\">Articles<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n<ul class=\"mega-sub-menu\" role='presentation' id='mega-sub-menu-4304'>\n<li class=\"mega-menu-row\" id=\"mega-menu-4304-0\">\n\t<ul class=\"mega-sub-menu\" style='--columns:2' role='presentation'>\n<li class=\"mega-menu-column mega-menu-columns-3-of-2\" style=\"--columns:2; --span:3\" id=\"mega-menu-4304-0-0\">\n\t\t<ul class=\"mega-sub-menu\">\n<li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-disable-link mega-menu-item-4306\" id=\"mega-menu-item-4306\"><a class=\"mega-menu-link\" tabindex=\"0\">Design patterns<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n\t\t\t<ul class=\"mega-sub-menu\" id='mega-sub-menu-4306'>\n<li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4314\" id=\"mega-menu-item-4314\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4099\/\">Strategy<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4313\" id=\"mega-menu-item-4313\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/budowniczy\/\">Builder<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4312\" id=\"mega-menu-item-4312\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/fabryka\/\">Factory<\/a><\/li>\t\t\t<\/ul>\n<\/li><li class=\"mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-disable-link mega-menu-item-4305\" id=\"mega-menu-item-4305\"><a class=\"mega-menu-link\" tabindex=\"0\">SOLID<span class=\"mega-indicator\" aria-hidden=\"true\"><\/span><\/a>\n\t\t\t<ul class=\"mega-sub-menu\" id='mega-sub-menu-4305'>\n<li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4311\" id=\"mega-menu-item-4311\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4232\/\">Single responsibility<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4310\" id=\"mega-menu-item-4310\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4246\/\">Open-Closed Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4309\" id=\"mega-menu-item-4309\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/liskov-substitution-principle\/\">Liskov Substitution Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4308\" id=\"mega-menu-item-4308\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4278\/\">Interface Segregation Principle<\/a><\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-menu-item-4307\" id=\"mega-menu-item-4307\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/elementor-4292\/\">Dependency Inversion Principle<\/a><\/li>\t\t\t<\/ul>\n<\/li>\t\t<\/ul>\n<\/li>\t<\/ul>\n<\/li><\/ul>\n<\/li><li class=\"mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-align-bottom-left mega-menu-flyout mega-menu-item-3976\" id=\"mega-menu-item-3976\"><a class=\"mega-menu-link\" href=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/contact\/\">Contact<\/a><\/li><\/ul><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dc8af25 e-flex e-con-boxed e-con e-parent\" data-id=\"dc8af25\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a49b25 elementor-widget elementor-widget-heading\" data-id=\"4a49b25\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Library app + AI chatbot<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b49ae80 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b49ae80\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-65c9b5c e-flex e-con-boxed e-con e-parent\" data-id=\"65c9b5c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-13274b7 elementor-widget elementor-widget-text-editor\" data-id=\"13274b7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>An application created using CSS (including Flexbox, Bootstrap), JS (async\/await, arrow functions) and PHP with the MVC pattern. Link to the application: <a href=\"https:\/\/finanse.natalia-kaczynska.profesjonalnyprogramista.pl\">https:\/\/finanse.natalia-kaczynska.profesjonalnyprogramista.pl<\/a>. Link to the code on GitHub: <a href=\"https:\/\/github.com\/NatKacz99\/budget-app-MVC\">https:\/\/github.com\/NatKacz99\/budget-app-MVC<\/a>.\u00a0<\/p><p>Below, I present on slides how the user can use this application. Alternatively, you can also go straight to the video below, where I also discuss the most important functionalities of the code in more detail.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e5dcfc8 elementor-widget elementor-widget-shortcode\" data-id=\"e5dcfc8\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"metaslider-id-4568\" style=\"width: 100%;\" class=\"ml-slider-3-100-1 metaslider metaslider-flex metaslider-4568 ml-slider ms-theme-nexus has-dots-nav\" role=\"region\" aria-label=\"Nuovo diaporama\" data-height=\"932\" data-width=\"1902\">\n    <div id=\"metaslider_container_4568\">\n        <div id=\"metaslider_4568\">\n            <ul aria-live='off' class='slides'>\n                <li style=\"display: block; width: 100%;\" class=\"slide-4571 ms-image\" aria-roledescription=\"slide\" data-date=\"2025-09-03 19:48:37\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/09\/strona_glowna1.jpg\" height=\"932\" width=\"1902\" alt=\"strona g\u0142\u00f3wna aplikacji bibliotecznej (NodeJS, REST API, JS, React)\" class=\"slider-4568 slide-4571 msDefaultImage\" title=\"Library app home page part 1.\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-4573 ms-image\" aria-roledescription=\"slide\" data-date=\"2025-09-03 19:50:00\"><img decoding=\"async\" src=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/09\/strona_glowna2-1887x925.jpg\" height=\"932\" width=\"1902\" alt=\"strona g\u0142\u00f3wna aplikacji bibliotecznej w REACT, NodeJS, REST API, JS\" class=\"slider-4568 slide-4573 msDefaultImage\" title=\"Library app home page pt. 2\" \/><div class=\"caption-wrap\"><div class=\"caption\"><p style=\"text-align:left;\">This is what the book covers look like. Clicking on a cover card takes you to a brief description of the book.<\/p><\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-4575 ms-image\" aria-roledescription=\"slide\" data-date=\"2025-09-03 19:50:44\"><img decoding=\"async\" src=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/09\/opis_ksiazki-1859x911.jpg\" height=\"932\" width=\"1902\" alt=\"opis ksi\u0105\u017cki w aplikacji bibliotecznej (NodeJS, React, REST API, JS)\" class=\"slider-4568 slide-4575 msDefaultImage\" title=\"Book description\" \/><div class=\"caption-wrap\"><div class=\"caption\"><p style=\"text-align:left;\">On this page, users can borrow or reserve a given book (in case all copies are already out). The maximum number of available copies is 10.\u00a0<\/p><\/div><\/div><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-4577 ms-image\" aria-roledescription=\"slide\" data-date=\"2025-09-03 19:51:41\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/09\/chatbot-1890x926.jpg\" height=\"932\" width=\"1902\" alt=\"chatbot AI w aplikacji bibliotecznej\" class=\"slider-4568 slide-4577 msDefaultImage\" title=\"Chatbot AI\" \/><\/li>\n                <li style=\"display: none; width: 100%;\" class=\"slide-4579 ms-image\" aria-roledescription=\"slide\" data-date=\"2025-09-03 19:52:22\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/09\/wypozyczenia-1883x923.jpg\" height=\"932\" width=\"1902\" alt=\"wypo\u017cyczenia w apce bibliotecznej w REST API, NodeJS, JS\" class=\"slider-4568 slide-4579 msDefaultImage\" title=\"rentals\" \/><\/li>\n            <\/ul>\n        <\/div>\n        \n    <\/div>\n<\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8a12837 elementor-widget elementor-widget-html\" data-id=\"8a12837\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<iframe src=\"https:\/\/drive.google.com\/file\/d\/1X0Qjvtiq_YcWqO0sTlZQvtvhwCmWoyw-\/preview\" width=\"640\" height=\"480\"><\/iframe>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div>","protected":false},"excerpt":{"rendered":"<p>natalia.kaczynska.programista@gmail.com Aplikacja biblioteczna + chatbot AI Aplikacja stworzona przy u\u017cyciu CSS (w tym Flexbox, Bootstrap), JS (async\/await, arrow functions) i [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-4408","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/comments?post=4408"}],"version-history":[{"count":31,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4408\/revisions"}],"predecessor-version":[{"id":4931,"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/pages\/4408\/revisions\/4931"}],"wp:attachment":[{"href":"https:\/\/natalia-kaczynska.profesjonalnyprogramista.pl\/en\/wp-json\/wp\/v2\/media?parent=4408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}