{"id":1521,"date":"2025-10-09T11:24:50","date_gmt":"2025-10-09T09:24:50","guid":{"rendered":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/?page_id=1521"},"modified":"2025-10-10T10:45:46","modified_gmt":"2025-10-10T08:45:46","slug":"lifeguide-app","status":"publish","type":"page","link":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/lifeguide-app\/","title":{"rendered":"LifeGuide-App"},"content":{"rendered":"\n<div class=\"wp-block-cover alignfull is-light\" style=\"min-height:100vh;aspect-ratio:unset;\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" class=\"wp-block-cover__image-background wp-image-1532 size-large\" alt=\"\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1-1024x576.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1-1024x576.jpg 1024w, https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1-300x169.jpg 300w, https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1-768x432.jpg 768w, https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1-1536x864.jpg 1536w, https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/Yellow-and-White-Abstract-Charity-Presentation-1.jpg 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-70 has-background-dim\" style=\"background-color:#e4e3e0\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<p id=\"wp-block-themeisle-blocks-advanced-heading-5f550c01\" class=\"wp-block-themeisle-blocks-advanced-heading wp-block-themeisle-blocks-advanced-heading-5f550c01\">Your Partner in LIFE Problem Solving<\/p>\n\n\n\n<h1 id=\"wp-block-themeisle-blocks-advanced-heading-bf316197\" class=\"wp-block-themeisle-blocks-advanced-heading wp-block-themeisle-blocks-advanced-heading-bf316197\">LIFEGUIDE APP<\/h1>\n<\/div><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Most of us have faced difficulties in life. We\u2019ve all had to deal with a tough problem that was hard to solve and clearly bothered us. Often, we didn\u2019t know how to effectively fix the issue to improve our well-being, life situation, or career.<\/p>\n\n\n\n<p><strong>What is LifeGuide ?<\/strong><\/p>\n\n\n\n<p>Based on my previous application running on Node.js, I created a new, more useful application. It has new, expanded components and is called <strong>LifeGuide<\/strong>.<\/p>\n\n\n\n<p><strong>Key Advantages<\/strong><\/p>\n\n\n\n<p>This app uses the <strong>Gemini Artificial Intelligence<\/strong> model from the <strong>Google Generative AI<\/strong> package. It takes on the role of a Psychologist or Coach to help the user solve their life problems.<br>A great feature of <strong>LifeGuide<\/strong> is that users can add many problems covering various topics. You can talk to the <strong>AI bot<\/strong> about a specific issue and return to that conversation at any time, with a full history of your discussion visible.<\/p>\n\n\n\n<p><strong>Where the App Lives<\/strong><\/p>\n\n\n\n<p>The entire application is hosted on an external <strong>VPS virtual server<\/strong> running the Ubuntu operating system. It runs online permanently using the <strong>PM2<\/strong> <strong>Process Manager<\/strong>. Ports 22, 3000, and 8080 have been exposed using the <strong>UFW (Uncomplicated Firewall)<\/strong> program.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>The Technology (For the Curious)<\/strong> <\/p>\n\n\n\n<p><strong>The Server Side (Backend)<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It relies on a custom <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">REST API<\/mark><\/strong>.  <\/li>\n\n\n\n<li>It\u2019s built using the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\"><strong>Express.js<\/strong><\/mark> framework, the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">CORS<\/mark><\/strong> library, and JavaScript modules   like <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-1-color\"><strong>dotenv<\/strong><\/mark>, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-1-color\">bycrypt<\/mark><\/strong>, and <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-1-color\">pg<\/mark><\/strong>.                                                                                                                                                                <\/li>\n\n\n\n<li>It uses the relational database <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">PostgreSQL<\/mark><\/strong>.                                                                                                                                                             <\/li>\n\n\n\n<li>The backend application communicates with the external AI engine API.<\/li>\n<\/ul>\n\n\n\n<p><strong>The User Interface (Frontend)<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It uses <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">HTML<\/mark><\/strong>,<strong> <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">CSS<\/mark><\/strong>, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">JavaScript<\/mark><\/strong> standards.<\/li>\n\n\n\n<li>It leverages the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">Bootstrap<\/mark><\/strong> framework and various JavaScript libraries, including <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">React<\/mark><\/strong>, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">Axios<\/mark><\/strong>, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">FontAwesome<\/mark><\/strong>.<\/li>\n\n\n\n<li>Visual components are sourced from the <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-nv-c-2-color\">Material UI<\/mark><\/strong> component library for React.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Check out the app&#8217;s source code on <a href=\"https:\/\/github.com\/pawel-user\/LifeGuideApp\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub<\/a> to see how it works behind the scenes.<\/p>\n\n\n\n<p class=\"has-text-align-center\">The application is shown in action in the screenshots below.<\/p>\n\n\n\n<div id=\"wp-block-themeisle-blocks-slider-c3b910e4\" class=\"wp-block-themeisle-blocks-slider glide\" data-per-view=\"1\" data-gap=\"0\" data-peek=\"0\" data-autoplay=\"true\" data-height=\"400px\" data-hide-arrows=\"false\"><div class=\"glide__track\" data-glide-el=\"track\"><div class=\"glide__slides\"><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/1-2.png\" alt=\"\" title=\"\" data-id=\"1542\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/2-1.png\" alt=\"\" title=\"\" data-id=\"1543\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/3.png\" alt=\"\" title=\"\" data-id=\"1545\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/4.png\" alt=\"\" title=\"\" data-id=\"1546\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/5.png\" alt=\"\" title=\"\" data-id=\"1547\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/6.png\" alt=\"\" title=\"\" data-id=\"1548\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/7.png\" alt=\"\" title=\"\" data-id=\"1549\"\/><\/figure><\/div><div class=\"wp-block-themeisle-blocks-slider-item-wrapper glide__slide\" tabindex=\"0\"><figure><img decoding=\"async\" class=\"wp-block-themeisle-blocks-slider-item\" src=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/wp-content\/uploads\/2025\/10\/8.png\" alt=\"\" title=\"\" data-id=\"1550\"\/><\/figure><\/div><\/div><div class=\"glide__bullets\" data-glide-el=\"controls[nav]\"><button class=\"glide__bullet\" data-glide-dir=\"=0\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=1\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=2\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=3\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=4\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=5\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=6\"><\/button><button class=\"glide__bullet\" data-glide-dir=\"=7\"><\/button><\/div><\/div><\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-text-align-center\">I invite You to watch a video presentation where I highlight the key features of the <strong>LifeGuide App<\/strong>.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Most of us have faced difficulties in life. We\u2019ve all had to deal with a tough problem that was hard to solve and clearly bothered us. Often, we didn\u2019t know how to effectively fix the issue to improve our well-being, life situation, or career. What is LifeGuide ? Based on my previous application running on&hellip;&nbsp;<a href=\"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/lifeguide-app\/\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">LifeGuide-App<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"on","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-1521","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/1521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1521"}],"version-history":[{"count":12,"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/1521\/revisions"}],"predecessor-version":[{"id":1565,"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/pages\/1521\/revisions\/1565"}],"wp:attachment":[{"href":"https:\/\/pawel-bochacik.profesjonalnyprogramista.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}