<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Slobodan Jevtić</title>
    <description>The latest articles on DEV Community by Slobodan Jevtić (@econdev).</description>
    <link>https://dev.to/econdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3322468%2F5557c3e5-8a63-496e-a9da-10b7971497b5.png</url>
      <title>DEV Community: Slobodan Jevtić</title>
      <link>https://dev.to/econdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/econdev"/>
    <language>en</language>
    <item>
      <title>Building a Multi-Chain Blockchain Transaction Tracer: Integrating It into My React Portfolio Site</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Sun, 13 Jul 2025 13:22:41 +0000</pubDate>
      <link>https://dev.to/econdev/building-a-multi-chain-blockchain-transaction-tracer-integrating-it-into-my-react-portfolio-site-162i</link>
      <guid>https://dev.to/econdev/building-a-multi-chain-blockchain-transaction-tracer-integrating-it-into-my-react-portfolio-site-162i</guid>
      <description>&lt;p&gt;Hey DEV community! I'm Slobodan Jevtić, a self-taught developer diving deep into Python, React, and blockchain tech. If you've followed my portfolio journey, you know I'm all about hands-on projects that solve real problems. Today, I'm excited to share progress on my latest tool: a Blockchain KYT (Know Your Transaction) Tracer designed to trace wallet transactions using public data. The goal? Help fight crypto crime by tracking illicit funds, identifying risky addresses, and potentially aiding fund recovery—all while showcasing it as part of my React-based portfolio.&lt;/p&gt;

&lt;p&gt;This tool is live at econdev.studio/crypto-tool. It started as a simple Ethereum tracer and now supports Bitcoin too, with more chains on the way. Let's break down how I built it, integrated it into my site, and why it's a game-changer for ethical blockchain sleuthing.&lt;/p&gt;

&lt;p&gt;Why Build This? The Vision Behind the Tool&lt;br&gt;
Blockchain is transparent by design—every transaction is public, making it a goldmine for investigators. Tools like this can help trace stolen funds from hacks (e.g., Ronin Bridge) or scam payments. My tracer focuses on KYT: analyzing transactions to flag risks, follow specific amounts, and visualize flows across addresses, DEXes, and chains.&lt;/p&gt;

&lt;p&gt;As a portfolio piece, it demonstrates:&lt;/p&gt;

&lt;p&gt;React routing and component architecture.&lt;br&gt;
API integrations (Etherscan, Blockcypher).&lt;br&gt;
Secure env handling and deployment.&lt;br&gt;
The UI has a "hacker-y" vibe—dark mode, monospace fonts, green accents—to appeal to the cyber-investigator crowd. But it's ethical: Public data only, with disclaimers for lawful use.&lt;/p&gt;

&lt;p&gt;Portfolio Site Basics: React + Vite Setup&lt;br&gt;
My site (econdev.studio) is a single-page app built with Vite + React. It features scrollable sections (Hero, About, Projects, Blog, Contact), particle effects via tsParticles, tilt animations with VanillaTilt, and a Konami code Easter egg for Tic-Tac-Toe fun.&lt;/p&gt;

&lt;p&gt;Key files:&lt;/p&gt;

&lt;p&gt;App.jsx: Handles routing with react-router-dom.&lt;br&gt;
Home.jsx: The main portfolio content.&lt;br&gt;
Deployment: GitHub Pages via npm run build and npm run deploy (using gh-pages package).&lt;br&gt;
To add the tool, I installed react-router-dom and axios:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install react-router-dom axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, updated App.jsx for the new route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Home from './components/Home';
import CryptoTool from './components/CryptoTool';

function App() {
  return (
    &amp;lt;Router&amp;gt;
      &amp;lt;Routes&amp;gt;
        &amp;lt;Route path="/" element={&amp;lt;Home /&amp;gt;} /&amp;gt;
        &amp;lt;Route path="/crypto-tool" element={&amp;lt;CryptoTool /&amp;gt;} /&amp;gt;
      &amp;lt;/Routes&amp;gt;
    &amp;lt;/Router&amp;gt;
  );
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Added a link in Navbar.jsx:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { Link } from 'react-router-dom';

// In the nav-links ul:
&amp;lt;Link to="/crypto-tool"&amp;gt;Crypto Tool&amp;lt;/Link&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps the portfolio intact while adding a dedicated page.&lt;/p&gt;

&lt;p&gt;Building the Core: Ethereum Tracing with Etherscan&lt;br&gt;
Started simple: Fetch recent transactions for an ETH address using the free Etherscan API (sign up for a key at etherscan.io/apis).&lt;/p&gt;

&lt;p&gt;In CryptoTool.jsx:&lt;/p&gt;

&lt;p&gt;Input for address.&lt;br&gt;
Fetch last 10 txs.&lt;br&gt;
Display in a table with links to Etherscan.&lt;br&gt;
Code snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fetchTransactions = async () =&amp;gt; {
  // ... (API call logic)
  const response = await axios.get(
    `https://api.etherscan.io/api?module=account&amp;amp;action=txlist&amp;amp;address=${address}&amp;amp;...&amp;amp;apikey=${ETHERSCAN_API_KEY}`
  );
  setTransactions(response.data.result.map(tx =&amp;gt; ({
    // Normalize data
  })));
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Security tip: Store the key in .env (e.g., VITE_ETHERSCAN_API_KEY=your_key), access via import.meta.env.VITE_ETHERSCAN_API_KEY. Add .env to .gitignore!&lt;/p&gt;

&lt;p&gt;Adding Multi-Chain Support: Bitcoin with Blockcypher&lt;br&gt;
To make it versatile, added a dropdown for chains. BTC uses Blockcypher's free API (no key needed).&lt;/p&gt;

&lt;p&gt;Updated fetch logic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (chain === 'BTC') {
  response = await axios.get(
    `https://api.blockcypher.com/v1/btc/main/addrs/${address}?limit=10`
  );
  setTransactions(response.data.txrefs.map(txref =&amp;gt; ({
    // Normalize BTC data, infer direction
  })));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Normalized the table for both chains (added "Direction" column). Test BTC with Satoshi's address: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.&lt;/p&gt;

&lt;p&gt;UI and Enhancements&lt;br&gt;
Hacker Vibe: Dark BG (#1e1e1e), green text (#00ff00), monospace font.&lt;br&gt;
Form: Chain select, address input, "Trace" button.&lt;br&gt;
Table: Clickable hashes to explorers.&lt;br&gt;
Future: Solana (via RPC), BEP20 (BSCScan), fund flow graphs (React-Flow), risk flagging (scam DBs), cross-chain tracing.&lt;br&gt;
Challenges overcome:&lt;/p&gt;

&lt;p&gt;API rate limits: Inform users, add pagination.&lt;br&gt;
BTC complexity: Simplified multi-input/output txs; will expand to full details.&lt;br&gt;
Deployment and Going Live&lt;br&gt;
After updates:&lt;/p&gt;

&lt;p&gt;git add . &amp;amp;&amp;amp; git commit -m "Added BTC support" &amp;amp;&amp;amp; git push&lt;br&gt;
npm run build &amp;amp;&amp;amp; npm run deploy&lt;br&gt;
Live in minutes on GitHub Pages. Custom domain (econdev.studio) via CNAME file.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;br&gt;
Add Solana and BEP20.&lt;br&gt;
Implement recursive tracing (follow amounts hops).&lt;br&gt;
Visualize with graphs.&lt;br&gt;
Integrate Grok (xAI) for AI analysis (e.g., "Is this risky?").&lt;br&gt;
Open-source on GitHub for contributions.&lt;br&gt;
Check it out at econdev.studio/crypto-tool and let me know your thoughts! If you're into blockchain dev or crime-fighting tools, drop a comment—what chain should I add next?&lt;/p&gt;

&lt;p&gt;Thanks for reading! Follow for more updates on my dev journey. 🚀&lt;/p&gt;

</description>
      <category>react</category>
      <category>blockchain</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Enhancing My Portfolio Site with Grok: Bug Fixes, Feature Tweaks, and the Joy of AI Collaboration</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Sat, 12 Jul 2025 02:48:38 +0000</pubDate>
      <link>https://dev.to/econdev/enhancing-my-portfolio-site-with-grok-bug-fixes-feature-tweaks-and-the-joy-of-ai-collaboration-1lf2</link>
      <guid>https://dev.to/econdev/enhancing-my-portfolio-site-with-grok-bug-fixes-feature-tweaks-and-the-joy-of-ai-collaboration-1lf2</guid>
      <description>&lt;p&gt;Hey everyone, Slobodan here—your friendly economics grad turned aspiring dev.In my last post, I shared the bumpy road to launching econdev.studio, complete with white screens and deployment drama. Today marks another milestone: polishing that site with the help of Grok, xAI's witty AI assistant. Unlike some of my earlier entries (which, let's be honest, felt a bit formulaic thanks to quick ChatGPT drafts), this one's infused with more personal flair, deeper tech dives, and the actual back-and-forth that made it fun.&lt;/p&gt;

&lt;p&gt;Why Grok? Well, after wrestling with code on my own, I wanted an AI that could guide me step-by-step without just spitting out generic templates. Grok felt more like a coding buddy—analyzing my files, suggesting fixes, and even cracking jokes along the way. We tackled nagging bugs like a transparent navbar, invisible particles in the hero section, overflow issues, and unclickable blog buttons. The result? A sleeker, more interactive site that's now fully live. Let's break it down, with real code snippets from our session.&lt;/p&gt;

&lt;p&gt;The Starting Point: What Was Broken?&lt;br&gt;
My portfolio was built with React, Vite, and goodies like TSParticles for that cool animated background in the hero. But post-launch, a few gremlins crept in:&lt;/p&gt;

&lt;p&gt;Transparent Navbar: It blended into the background, making the site look unfinished. Turns out, a missing CSS variable was the culprit.&lt;br&gt;
Missing/Overflowing Particles: The blue dots weren't showing at first (version mismatch in packages), and once fixed, they spilled over the entire page, even blocking clicks on other sections.&lt;br&gt;
Blog Section Glitches: Pulling posts from my DEV.to feed worked, but there was no easy "View More" to see all articles, and particles were interfering with button clicks.&lt;br&gt;
These weren't showstoppers, but they bugged me (pun intended). I fed Grok my code files—App.jsx, Hero.jsx, Navbar.jsx, Blog.jsx, and CSS—and we iterated in real-time.&lt;/p&gt;

&lt;p&gt;Lessons Learned: Why This Felt Different&lt;br&gt;
Collaborating with Grok was a game-changer compared to solo debugging or generic AI prompts. It analyzed my exact code, suggested precise edits, and explained why (e.g., "This is a version mismatch—here's the refactor"). No copy-paste walls of code; just iterative guidance.&lt;/p&gt;

&lt;p&gt;Personal reflection: As an econ guy, I love efficiency, but coding's taught me patience. Today's wins? A professional site that showcases my projects, blog, and contact form. Failures? Forgetting to clear caches—classic newbie move. But that's the journey: from frustration to "aha!" moments.&lt;/p&gt;

&lt;p&gt;If you're building your own site, try AI as a co-pilot. Tools like Grok (built by xAI) bring reasoning and humor—way beyond basic chatbots.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;br&gt;
Integrate more animations with Framer Motion.&lt;br&gt;
Add a crypto project showcase.&lt;br&gt;
Maybe a fun Tic-Tac-Toe Easter egg (already hidden via Konami code!).&lt;br&gt;
Check out the live site at econdev.studio and let me know what you think in the comments. Code's on GitHub. If you're pivoting careers too, share your story—let's connect!&lt;/p&gt;

&lt;p&gt;Thanks for reading. Onward to Day Whatever-This-Is! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>How I Built and Deployed My Portfolio Site From Scratch (With Failures, Fixes, and a Domain)</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Thu, 10 Jul 2025 19:46:45 +0000</pubDate>
      <link>https://dev.to/econdev/how-i-built-and-deployed-my-portfolio-site-from-scratch-with-failures-fixes-and-a-domain-4166</link>
      <guid>https://dev.to/econdev/how-i-built-and-deployed-my-portfolio-site-from-scratch-with-failures-fixes-and-a-domain-4166</guid>
      <description>&lt;p&gt;I recently launched my personal portfolio at econdev.studio, and while it’s live now, the road was anything but smooth. Between white screens, GitHub config issues, deployment quirks, and a few facepalms along the way — I learned a lot.&lt;/p&gt;

&lt;p&gt;This post isn’t a perfect tutorial — it’s a real story, with real fixes. If you’re trying to build and deploy your own portfolio, maybe this saves you a few headaches.&lt;/p&gt;

&lt;p&gt;🔧 Stack &amp;amp; Goals&lt;br&gt;
Built with: React + Vite&lt;/p&gt;

&lt;p&gt;Hosted on: GitHub Pages&lt;/p&gt;

&lt;p&gt;Deployed via: gh-pages package&lt;/p&gt;

&lt;p&gt;Domain: Custom .studio domain (econdev.studio)&lt;/p&gt;

&lt;p&gt;Goals: One-page, fast-loading portfolio with sections for About, Projects, Contact&lt;/p&gt;

&lt;p&gt;🧱 Building the Site&lt;br&gt;
Started with a basic App.jsx structure&lt;/p&gt;

&lt;p&gt;Created reusable components:&lt;/p&gt;













&lt;p&gt;Used dark mode with a toggle&lt;/p&gt;

&lt;p&gt;Kept layout simple but professional with proper spacing, typography, and scroll sections&lt;/p&gt;

&lt;p&gt;🚧 First Big Challenge: GitHub Pages + Vite&lt;br&gt;
I pushed my files and... the site was just white.&lt;br&gt;
No errors in the terminal. No crashes. Just nothing.&lt;/p&gt;

&lt;p&gt;Turns out:&lt;/p&gt;

&lt;p&gt;I had the wrong base path set in vite.config.js&lt;/p&gt;

&lt;p&gt;GitHub Pages serves from /repo-name/, unless you're using a custom domain&lt;/p&gt;

&lt;p&gt;Once I set base: '/' and added a CNAME file → 💡 it worked&lt;/p&gt;

&lt;p&gt;📁 Deploying with gh-pages&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install --save-dev gh-pages&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then I added this to package.json:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"homepage": "https://bobaSloba.github.io/portfolio-site",&lt;br&gt;
"scripts": {&lt;br&gt;
  "deploy": "gh-pages -d dist"&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🤦 Funny Mistakes I Made&lt;br&gt;
Added  twice → double sections at the bottom&lt;/p&gt;

&lt;p&gt;Broke JSON with an extra comma → EJSONPARSE errors from npm&lt;/p&gt;

&lt;p&gt;Pushed changes and forgot to rebuild → “why is the site still old??”&lt;/p&gt;

&lt;p&gt;Thought I needed a CSR for SSL — spoiler: you don’t with GitHub Pages&lt;/p&gt;

&lt;p&gt;✅ Final Result&lt;br&gt;
📍 Live: &lt;a href="https://econdev.studio" rel="noopener noreferrer"&gt;https://econdev.studio&lt;/a&gt;&lt;br&gt;
💻 Code: GitHub repo&lt;/p&gt;

&lt;p&gt;🚀 What’s Next?&lt;br&gt;
Scroll reveal animations (Framer Motion or AOS)&lt;/p&gt;

&lt;p&gt;Responsive polish&lt;/p&gt;

&lt;p&gt;Mini game Easter egg 😏&lt;/p&gt;

&lt;p&gt;Favicon and tab branding&lt;/p&gt;

&lt;p&gt;Maybe a blog or writing section?&lt;/p&gt;

&lt;p&gt;❤️ Lessons&lt;br&gt;
Don’t fear the terminal — copy/paste is a weapon&lt;/p&gt;

&lt;p&gt;Deploying to GitHub Pages with Vite takes a few extra steps, but it’s worth it&lt;/p&gt;

&lt;p&gt;Failures are just checkpoints&lt;/p&gt;

&lt;p&gt;If you ever see a white screen — check your vite.config.js&lt;/p&gt;

&lt;p&gt;📣 Let’s Connect&lt;br&gt;
If you’re working on your own portfolio and got stuck — feel free to drop a comment or DM. I’ll reply.&lt;br&gt;
You can find me on GitHub: @bobaSloba&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>vite</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>From Profile to Portfolio: My First Real Website — Built the Hard Way (With AI)</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Tue, 08 Jul 2025 02:00:21 +0000</pubDate>
      <link>https://dev.to/econdev/from-profile-to-portfolio-my-first-real-website-built-the-hard-way-with-ai-32f1</link>
      <guid>https://dev.to/econdev/from-profile-to-portfolio-my-first-real-website-built-the-hard-way-with-ai-32f1</guid>
      <description>&lt;p&gt;When I set out to complete my developer profiles across platforms like GitHub and Dev.to, I realized something was missing: a website that truly represented me.&lt;/p&gt;

&lt;p&gt;I wanted a personal site — clean, responsive, and live on a custom domain. It sounded simple at first… especially with AI tools like ChatGPT and GitHub Copilot by my side.&lt;/p&gt;

&lt;p&gt;But here's the truth:&lt;/p&gt;

&lt;p&gt;🚧 Building a good website, even with AI help, is not a push-button task.&lt;br&gt;
💻 You still need to understand, debug, design, and deploy.&lt;/p&gt;

&lt;p&gt;This is the story of how I did it anyway — and what I learned.&lt;/p&gt;

&lt;p&gt;🚀 Why I Decided to Build a Personal Site&lt;br&gt;
I had just finished refreshing my GitHub and Dev.to profiles&lt;/p&gt;

&lt;p&gt;I generated a custom avatar, a bio, and started pushing projects to GitHub&lt;/p&gt;

&lt;p&gt;I realized a site would tie it all together and give me a place I control to showcase myself&lt;/p&gt;

&lt;p&gt;🔧 Choosing the Stack&lt;br&gt;
After trying Notion + Super.so (which I liked but found too expensive), I switched to what I really wanted:&lt;/p&gt;

&lt;p&gt;Vite + React — blazing fast setup&lt;/p&gt;

&lt;p&gt;Tailwind CSS — for clean, responsive styles&lt;/p&gt;

&lt;p&gt;GitHub Pages — for free hosting&lt;/p&gt;

&lt;p&gt;Custom domain from Name.com&lt;/p&gt;

&lt;p&gt;I installed and ran everything on my MacBook Air with Copilot and ChatGPT as co-pilots (pun intended).&lt;/p&gt;

&lt;p&gt;🧠 AI Helps, But You Still Need to Think&lt;br&gt;
Here’s where it got tricky:&lt;/p&gt;

&lt;p&gt;Layout issues — Elements weren’t centered, pages were blank at times&lt;/p&gt;

&lt;p&gt;Duplicate imports &amp;amp; export errors — App crashed silently until debugged&lt;/p&gt;

&lt;p&gt;Deployment errors — Git wouldn’t push until I switched from HTTPS to SSH&lt;/p&gt;

&lt;p&gt;Missing images — Logo didn’t show due to misnamed files&lt;/p&gt;

&lt;p&gt;GitHub Pages setup — Setting DNS records and waiting for HTTPS to activate&lt;/p&gt;

&lt;p&gt;All of these needed step-by-step troubleshooting, guidance from ChatGPT, reading docs, and trying things again and again.&lt;/p&gt;

&lt;p&gt;🌐 Deployment and Domain Setup&lt;br&gt;
I bought a domain from Name.com and pointed it to GitHub using A records and a CNAME.&lt;/p&gt;

&lt;p&gt;GitHub Pages finally recognized it, and after some DNS waiting time, my site was live — secure and custom-branded.&lt;/p&gt;

&lt;p&gt;🧠 What I Learned&lt;br&gt;
AI can assist you — not replace you&lt;/p&gt;

&lt;p&gt;Frontend debugging often comes down to very small things (one typo, one misalignment)&lt;/p&gt;

&lt;p&gt;Git setup still needs SSH keys or personal access tokens&lt;/p&gt;

&lt;p&gt;Custom domains are great for building trust — and yes, GitHub lets you host it for free&lt;/p&gt;

&lt;p&gt;✨ What’s Next?&lt;br&gt;
Now that my site is up, I can:&lt;/p&gt;

&lt;p&gt;Showcase my projects (like my Habit Tracker App)&lt;/p&gt;

&lt;p&gt;Add a blog or “Now” page&lt;/p&gt;

&lt;p&gt;Link it to my resume and profiles&lt;/p&gt;

&lt;p&gt;And this article? It’s the first in what I hope is a long chain of weekly updates.&lt;/p&gt;

&lt;p&gt;💬 Final Thoughts&lt;br&gt;
If you’re building your first site, know this:&lt;/p&gt;

&lt;p&gt;It's okay if it doesn't look amazing on day one&lt;/p&gt;

&lt;p&gt;It’s better to finish something imperfect but real than to wait forever for “perfect”&lt;/p&gt;

&lt;p&gt;Document the process — it becomes part of your journey&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>vite</category>
    </item>
    <item>
      <title>Day Two – Sleep Tracker Tab Built and Working</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Mon, 07 Jul 2025 22:16:39 +0000</pubDate>
      <link>https://dev.to/econdev/day-two-sleep-tracker-tab-built-and-working-7l9</link>
      <guid>https://dev.to/econdev/day-two-sleep-tracker-tab-built-and-working-7l9</guid>
      <description>&lt;h2&gt;
  
  
  Day Two: The Sleep Tracker Tab Is Live and Functional 😴✅
&lt;/h2&gt;

&lt;p&gt;Today I took my first real step into connecting code with real-life usefulness.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Sleep Tracker&lt;/strong&gt; section of my habit tracker app is now fully functional. It lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Slide to set when you fell asleep and when you woke up&lt;/li&gt;
&lt;li&gt;Automatically calculate your total hours slept&lt;/li&gt;
&lt;li&gt;Handle overnight sleep (e.g. 23:30 → 06:30 works!)&lt;/li&gt;
&lt;li&gt;Save the result to an SQLite database, locally on your machine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This marks a big shift: from just seeing screens… to making them &lt;em&gt;do&lt;/em&gt; something.&lt;/p&gt;




&lt;h3&gt;
  
  
  💡 Why This Matters
&lt;/h3&gt;

&lt;p&gt;I’m building this app not just to learn Python and mobile app dev — but to rebuild structure in my own life.&lt;/p&gt;

&lt;p&gt;Tracking sleep helps me stay mindful of energy, focus, and mental health. The goal is consistency, not perfection.&lt;/p&gt;

&lt;p&gt;Each section of this app — sleep, calories, workouts, running — is a tool for &lt;strong&gt;self-maintenance&lt;/strong&gt;, built by my own hands.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔧 Today’s Technical Wins
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Used Kivy to create sliders for sleep start/end times
&lt;/li&gt;
&lt;li&gt;Calculated total sleep duration (including overnight logic)
&lt;/li&gt;
&lt;li&gt;Stored data with timestamps into a local SQLite DB
&lt;/li&gt;
&lt;li&gt;Kept UI clean and responsive using &lt;code&gt;.kv&lt;/code&gt; structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repo is public here →&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/bobaSloba/habit-tracker-mobile" rel="noopener noreferrer"&gt;https://github.com/bobaSloba/habit-tracker-mobile&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔜 What’s Coming Next
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Visual graphs for sleep over time using Matplotlib
&lt;/li&gt;
&lt;li&gt;A monthly calendar view with colored day blocks:

&lt;ul&gt;
&lt;li&gt;🔴 Less than 6h&lt;/li&gt;
&lt;li&gt;🔵 6–8h&lt;/li&gt;
&lt;li&gt;🟢 8h+&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Later, I’ll build the &lt;strong&gt;Calories tab&lt;/strong&gt;, then &lt;strong&gt;Workouts&lt;/strong&gt;, and finally the GPS-based &lt;strong&gt;Running Tracker&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🙋‍♂️ Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Learning to code in public is more motivating than I expected.&lt;br&gt;&lt;br&gt;
Every little push feels like building a new part of myself — one commit at a time.&lt;/p&gt;

&lt;p&gt;If you’re learning Python, Kivy, or just working on your habits and mental health too — let’s connect.&lt;/p&gt;

&lt;p&gt;See you in Day Three.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>100daysofcode</category>
      <category>python</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>From Economics to Engineering My Future — Day Two of the Journey</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Mon, 07 Jul 2025 21:02:37 +0000</pubDate>
      <link>https://dev.to/econdev/from-economics-to-engineering-my-future-day-two-of-the-journey-4eh2</link>
      <guid>https://dev.to/econdev/from-economics-to-engineering-my-future-day-two-of-the-journey-4eh2</guid>
      <description>&lt;h2&gt;
  
  
  Day Two: Getting Set Up and Building the Foundation
&lt;/h2&gt;

&lt;p&gt;Today marks the start of my public learning journey.&lt;/p&gt;

&lt;p&gt;I’m an economics grad pivoting into the world of code, crypto, and problem-solving. I’ve decided to learn in public, build useful tools, and track my progress openly week by week.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ What I did today:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Set up my local dev environment on macOS&lt;/li&gt;
&lt;li&gt;Installed Kivy to explore mobile-ready Python apps&lt;/li&gt;
&lt;li&gt;Created a multi-screen habit tracker app using Python and Kivy&lt;/li&gt;
&lt;li&gt;Pushed my first working version to GitHub (🎉)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the repo here:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/bobaSloba/habit-tracker-mobile" rel="noopener noreferrer"&gt;https://github.com/bobaSloba/habit-tracker-mobile&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  💭 Why This Matters (Mental Health &amp;amp; Habits)
&lt;/h3&gt;

&lt;p&gt;This isn’t just about building an app. It’s about building &lt;em&gt;myself&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The four habits I’m tracking — sleep, food, workouts, and running — are the pillars of mental well-being. Over the past months, I’ve learned firsthand how much better I feel when I sleep enough, eat clean, move my body, and spend time outside.&lt;/p&gt;

&lt;p&gt;Coding is my creative outlet, but these habits are my fuel.&lt;/p&gt;

&lt;p&gt;This app is my way of staying accountable to both.&lt;/p&gt;




&lt;h3&gt;
  
  
  📱 What’s Next:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Build out the &lt;strong&gt;Sleep tab&lt;/strong&gt; with slider input, calendar view, and graph&lt;/li&gt;
&lt;li&gt;Continue learning Kivy layouts and SQLite integration&lt;/li&gt;
&lt;li&gt;Post weekly progress updates and share key lessons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re learning Python, working on habits, or just curious about crypto/dev/AI — follow along or say hey. Let’s build together.&lt;/p&gt;

</description>
      <category>python</category>
      <category>coding</category>
      <category>100daysofcode</category>
      <category>mentalhealth</category>
    </item>
    <item>
      <title>From Economics to Engineering My Future — Day One of the Journey</title>
      <dc:creator>Slobodan Jevtić</dc:creator>
      <pubDate>Sun, 06 Jul 2025 01:42:47 +0000</pubDate>
      <link>https://dev.to/econdev/from-economics-to-engineering-my-future-day-one-of-the-journey-37lm</link>
      <guid>https://dev.to/econdev/from-economics-to-engineering-my-future-day-one-of-the-journey-37lm</guid>
      <description>&lt;p&gt;Hi, I’m Slobodan — an economics grad with a growing obsession for code, crypto, and creating. This is Day One of my public learning journey. I'm using this space to stay accountable, track progress, and share what I learn along the way.&lt;/p&gt;

&lt;p&gt;I’ve always loved solving problems and building things, but I’ve never fully committed to learning technical skills — until now. I want to shift from theory to action, from consuming to creating.&lt;/p&gt;

&lt;p&gt;Right now I’m focused on:&lt;/p&gt;

&lt;p&gt;Python (as my foundation)&lt;/p&gt;

&lt;p&gt;Crypto &amp;amp; blockchain dev (where econ meets tech)&lt;/p&gt;

&lt;p&gt;AI tools (to enhance creativity and productivity)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Today’s Milestones&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Created this GitHub profile and wrote my first post&lt;br&gt;
✅ Defined my roadmap: learning Python, building weekly projects&lt;br&gt;
✅ Set up my local dev environment (VS Code, Python, Git)&lt;br&gt;
✅ Picked a small first project: build a habit tracker with Tkinter&lt;/p&gt;

&lt;p&gt;What’s Next&lt;/p&gt;

&lt;p&gt;This week, I’ll:&lt;/p&gt;

&lt;p&gt;Work on the frontend of my habit tracker in Python&lt;/p&gt;

&lt;p&gt;Document key lessons here&lt;/p&gt;

&lt;p&gt;Share code snippets and blockers I hit&lt;/p&gt;

&lt;p&gt;Stay consistent, no matter what&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
