{"id":471,"date":"2025-02-15T19:41:28","date_gmt":"2025-02-15T19:41:28","guid":{"rendered":"https:\/\/www.asafslaboratory.com\/?p=471"},"modified":"2025-08-18T19:49:24","modified_gmt":"2025-08-18T19:49:24","slug":"friend-tracker","status":"publish","type":"post","link":"https:\/\/www.asafslaboratory.com\/?p=471","title":{"rendered":"See You Soon"},"content":{"rendered":"\n<p>Greetings and welcome to another post of HACKING LIFE where I try to win arguments against my wife using TECHNOLOGY.<\/p>\n\n\n\n<p>It just so happens, that according to my wife, I am quite an outgoing person, though I do not consider myself one. I argue that it&#8217;s not that I see my friends too frequently, but rather that I have a lot of friends that I actually see quite infrequently. The argument started out with a slight nudge, then a confrontation, then a full on outburst of LIES and DECIET! <br>No, I wont stop being this dramatic. <br>In the end our strong foundation enabled us to pull through out of these rough waters and agree that she was, of course, always right. Nevertheless, I set out on a journey to build an app to finish this once and for all! <\/p>\n\n\n\n<p>The solution is the awesome Friend Tracker app. I wrote it using the <strong>DJANGO REST PYTHON FRAMEWORK<\/strong>, some <strong>HTML, CSS, MySQL<\/strong> db and<strong> JavaScript<\/strong>. <br>The app allows the tracking of the days elapsed since you&#8217;ve last seen your friends. It also provides statistics and history to see which of your friends you like more. <\/p>\n\n\n\n<p>Here&#8217;s how it looks like:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-461x1024.png\" alt=\"\" class=\"wp-image-475\" style=\"width:340px;height:auto\" srcset=\"https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-461x1024.png 461w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-135x300.png 135w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-768x1707.png 768w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-691x1536.png 691w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-922x2048.png 922w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-300x667.png 300w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1-850x1889.png 850w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker-1.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-461x1024.png\" alt=\"\" class=\"wp-image-477\" style=\"width:340px;height:auto\" srcset=\"https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-461x1024.png 461w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-135x300.png 135w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-768x1707.png 768w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-691x1536.png 691w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-922x2048.png 922w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-300x667.png 300w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2-850x1889.png 850w, https:\/\/www.asafslaboratory.com\/wp-content\/uploads\/2025\/02\/FriendTracker2.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>The app is currently deployed on my home server using <strong>NGINX<\/strong> as a reverse proxy and <strong>GUNICORN <\/strong>as the <strong>WSGI<\/strong> ( Web Server Gateway Interface ). For the Cl\\CD I am using <strong>Github <\/strong>pull on the server side, as I upload new changes. Not the best of practices, but I think it works for me.  <\/p>\n\n\n\n<p>Now on to collecting enough data to prove once and for all that I know what I am talking about! <br>Then its my choice to think whether I want to present the data or still have a wife. Hard choice, but we&#8217;ll see when the data comes through.<\/p>\n\n\n\n<p><strong>Features to come:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Support for multiple users<\/li>\n\n\n\n<li>Identify using Google account<\/li>\n\n\n\n<li>Plan ahead and add the meetings to the google calendar <\/li>\n<\/ul>\n\n\n\n<p>Thank you for reading till the end. Whatever my choice would be, at least I have you, my many many readers. Stay tuned for the next post of Hacking life or Happy wife XD<br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Greetings and welcome to another post of HACKING LIFE where I try to win arguments against my wife using TECHNOLOGY. It just so happens, that according to my wife, I am quite an outgoing person, though I do not consider myself one. I argue that it&#8217;s not that I see my friends too frequently, but&#8230;<\/p>\n","protected":false},"author":1,"featured_media":474,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-471","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hacking-life"],"_links":{"self":[{"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/posts\/471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=471"}],"version-history":[{"count":5,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/posts\/471\/revisions"}],"predecessor-version":[{"id":496,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/posts\/471\/revisions\/496"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=\/wp\/v2\/media\/474"}],"wp:attachment":[{"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.asafslaboratory.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}