<?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>Forem: Leman Caliskan</title>
    <description>The latest articles on Forem by Leman Caliskan (@lemancaliskan).</description>
    <link>https://forem.com/lemancaliskan</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%2F3863723%2F2c83c8c3-a7b9-4a92-8613-5df0e5d1b8cb.jpg</url>
      <title>Forem: Leman Caliskan</title>
      <link>https://forem.com/lemancaliskan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lemancaliskan"/>
    <language>en</language>
    <item>
      <title>Building a Modern Digital Library: From CustomTkinter to PySide6 📚</title>
      <dc:creator>Leman Caliskan</dc:creator>
      <pubDate>Thu, 09 Apr 2026 14:21:39 +0000</pubDate>
      <link>https://forem.com/lemancaliskan/building-a-modern-digital-library-from-customtkinter-to-pyside6-1371</link>
      <guid>https://forem.com/lemancaliskan/building-a-modern-digital-library-from-customtkinter-to-pyside6-1371</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb633c7a6x1h32qqgqwm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb633c7a6x1h32qqgqwm0.png" alt="Shelfy Logo" width="591" height="174"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📘 The Story Behind Shelfy
&lt;/h2&gt;

&lt;p&gt;I felt the need to build something for my own personal workflow. As my book collection grew up, I didn't just need a shelf, I needed a system.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Shelfy&lt;/em&gt; is a digital ecosystem designed for book enthusiasts to organize and track their reading journeys.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxxbj8gmv6a3htgxklop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbxxbj8gmv6a3htgxklop.png" alt="Shelfy" width="800" height="423"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Shelfy Desktop app with Turkish UI (PySide6)&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  ✨ My Approach: The Evolution of UI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Leap to PySide6:&lt;/strong&gt; While I kept a lightweight &lt;code&gt;CustomTkinter&lt;/code&gt; version for its minimalist charm, I migrated the main version to &lt;code&gt;PySide6&lt;/code&gt; (Qt for Python) for professional desktop standards and smoother animations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-Framework Support:&lt;/strong&gt; Why choose one? I kept both versions available to cater to different user preferences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyxiwx5q266myk5q3lj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsyxiwx5q266myk5q3lj1.png" alt="Shelfy" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Shelfy Desktop app with Turkish UI in light mode (CustomTkinter)&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🛠️ Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Theme Engine 🌙/☀️:&lt;/strong&gt; System aware Dark/Light modes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Global Localization (EN/TR) 🌍:&lt;/strong&gt; Instant switching between English and Turkish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Filtering &amp;amp; Search 🔍:&lt;/strong&gt; No more scrolling endlessly. You can find your next read by Category, Subcategory, ISBN, or Author in real-time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sorting 📋:&lt;/strong&gt; Smart sorting (A-Z, Last Added, etc.) and real-time search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Asset Intelligence:&lt;/strong&gt; Automated favicon generation and dynamic scaling for any screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa57s9kobzzeszif964i2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa57s9kobzzeszif964i2.png" alt="Shelfy" width="800" height="420"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Shelfy Desktop app with English UI in dark mode (PySide6)&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🧬 The Tech Stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;JSON-Based Data Management:&lt;/strong&gt; No heavy database setup. Your library is a single, portable &lt;code&gt;JSON&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modular Architecture:&lt;/strong&gt; I separated the &lt;code&gt;data_manager.py&lt;/code&gt; (logic/API) from the &lt;code&gt;assets_manager.py&lt;/code&gt; (UI/Themes) to keep the code clean and reusable.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧾 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Software isn't just about solving problems it's about creating spaces where we enjoy spending our time. Feel free to break the code and help me improve it!&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Explore the Project
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/lemancaliskan" rel="noopener noreferrer"&gt;
        lemancaliskan
      &lt;/a&gt; / &lt;a href="https://github.com/lemancaliskan/Shelfy-Digital-Library" rel="noopener noreferrer"&gt;
        Shelfy-Digital-Library
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Modern desktop application for managing your personal book collection and tracking reading habits.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;📚 Shelfy - Modern Digital Library Management&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Shelfy is a comprehensive and user-friendly library management ecosystem designed for book enthusiasts. It allows you to organize your personal collection, track reading progress, and manage custom lists across multiple modern Python frameworks.&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Featured Version: PySide6 Edition&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;The latest evolution of Shelfy, built with PySide6 (Qt for Python). This version focuses on high performance, advanced UI/UX, and professional desktop standards.&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📺 Screenshots&lt;/h2&gt;
&lt;/div&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/573826544-e973bb90-b4f5-4076-8aa1-37fbf42b8526.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzYsIm5iZiI6MTc3NTc1OTE3NiwicGF0aCI6Ii80Njg3MDg2Ny81NzM4MjY1NDQtZTk3M2JiOTAtYjRmNS00MDc2LThhYTEtMzdmYmY0MmI4NTI2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzMDg0M2I2YmVjYTFlZWYxODVhNjA4ODZjNGM3NDdlOWVjNDllOTg4MDliYjFkYzA1MzIzYTAxN2I3MzFmMmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Zhi6O2WeCGbv6wriXzOiGCpKEWO6JNZImazDOodRj3Q"&gt;&lt;img width="770" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F573826544-e973bb90-b4f5-4076-8aa1-37fbf42b8526.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzYsIm5iZiI6MTc3NTc1OTE3NiwicGF0aCI6Ii80Njg3MDg2Ny81NzM4MjY1NDQtZTk3M2JiOTAtYjRmNS00MDc2LThhYTEtMzdmYmY0MmI4NTI2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzMDg0M2I2YmVjYTFlZWYxODVhNjA4ODZjNGM3NDdlOWVjNDllOTg4MDliYjFkYzA1MzIzYTAxN2I3MzFmMmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Zhi6O2WeCGbv6wriXzOiGCpKEWO6JNZImazDOodRj3Q"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/573826426-470fa11c-0c99-45b3-aaf7-5b6980f7ff9b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzYsIm5iZiI6MTc3NTc1OTE3NiwicGF0aCI6Ii80Njg3MDg2Ny81NzM4MjY0MjYtNDcwZmExMWMtMGM5OS00NWIzLWFhZjctNWI2OTgwZjdmZjliLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBjZGM4ZDZlMTBlODMzMzk0Mjc0NjI2MGQ1NDA5Y2ZhNjM5ZmZjMDk0ZjBiN2UyNDNiOGVjMDZlYzE0MTc3ODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6kHLvvGNRykrkPMIA5_x3zUyRViIe1sivBYe9mXjn6g"&gt;&lt;img width="770" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F573826426-470fa11c-0c99-45b3-aaf7-5b6980f7ff9b.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzYsIm5iZiI6MTc3NTc1OTE3NiwicGF0aCI6Ii80Njg3MDg2Ny81NzM4MjY0MjYtNDcwZmExMWMtMGM5OS00NWIzLWFhZjctNWI2OTgwZjdmZjliLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBjZGM4ZDZlMTBlODMzMzk0Mjc0NjI2MGQ1NDA5Y2ZhNjM5ZmZjMDk0ZjBiN2UyNDNiOGVjMDZlYzE0MTc3ODEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.6kHLvvGNRykrkPMIA5_x3zUyRViIe1sivBYe9mXjn6g"&gt;&lt;/a&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Key Features (PySide6)&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Advanced UI Engine:&lt;/strong&gt; Powered by Qt, offering smoother animations and a more robust desktop experience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dynamic Theme Engine:&lt;/strong&gt; Full support for system-aware Dark and Light modes with custom styled widgets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rich Interaction:&lt;/strong&gt; Enhanced drag-and-drop feel, custom combo boxes with search, and refined dialog windows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Global Localization:&lt;/strong&gt; Integrated i18n system for instant switching between English and Turkish.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smart Filtering &amp;amp; Search:&lt;/strong&gt; Real-time results by Category, Subcategory, ISBN, or Author.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Asset Intelligence:&lt;/strong&gt; Automated favicon generation and dynamic icon…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lemancaliskan/Shelfy-Digital-Library" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  🫱🏻‍🫲🏻 Contributing
&lt;/h2&gt;

&lt;p&gt;If you have ideas on how to improve the ML model or want to suggest new features for the UI, feel free to open an issue or a Pull Request on GitHub. Let’s build better health tools together!&lt;/p&gt;




</description>
      <category>python</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>ui</category>
    </item>
    <item>
      <title>Spreading Joy Through Code: Introducing the Birthday Celebration App 🎂</title>
      <dc:creator>Leman Caliskan</dc:creator>
      <pubDate>Tue, 07 Apr 2026 15:27:42 +0000</pubDate>
      <link>https://forem.com/lemancaliskan/spreading-joy-through-code-introducing-the-birthday-celebration-app-3ni</link>
      <guid>https://forem.com/lemancaliskan/spreading-joy-through-code-introducing-the-birthday-celebration-app-3ni</guid>
      <description>&lt;p&gt;I've been navigating the world of full-stack development for a while now, but lately I've decided to make an exciting pivot. I've been diving deep into the world of &lt;strong&gt;Python, Data Science, and Machine Learning&lt;/strong&gt; spending my days immersed in complex datasets, training models, and writing logic heavy backend code.&lt;/p&gt;

&lt;p&gt;I wanted to build something purely for joy. I also didn't want my frontend skills to get rusty while I focused so much on the data side of things. I missed the immediate visual gratification of &lt;code&gt;UI/UX&lt;/code&gt;, so I decided to combine my technical rigor with a little bit of digital magic.&lt;/p&gt;

&lt;p&gt;That's how this project was born. I wanted to build a bridge between a traditional greeting card and a modern web experience something that feels personal, interactive, and just a little bit fun.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ My Approach
&lt;/h2&gt;

&lt;p&gt;I wanted this app to be more than just a static “&lt;em&gt;Happy Birthday&lt;/em&gt;” page.&lt;/p&gt;

&lt;p&gt;It needed to be an experience. The goal was to create a digital ritual: the act of blowing out candles to unlock a heartfelt message.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;code&gt;React 18&lt;/code&gt; ended up being the perfect engine for this. I focused on making the interaction feel tactile and rewarding:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interactive Design:&lt;/strong&gt; Using a component-based UI that reacts to the user in real-time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;The "Blow" Mechanism:&lt;/strong&gt; On desktop, the magic happens via hover. On mobile devices, each candle is extinguished by tapping them individually.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Reward:&lt;/strong&gt; Once the last candle is out, the app triggers a surprise confetti celebration and a modal transition.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqupv8c2arhgamorj4nrs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqupv8c2arhgamorj4nrs.png" alt="Birthday Cake" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Birthday Cake): A charming 3-tiered digital birthday cake, complete with colorful candles and Turkish text.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes3pf0smt8hetcjws7jx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fes3pf0smt8hetcjws7jx.png" alt="Celebration State" width="800" height="391"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(Celebration State): The celebration is triggered! Confetti rains down as a surprise birthday message card appears.&lt;/em&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🎂 A Touch of Soul (Turkish UI)
&lt;/h2&gt;

&lt;p&gt;The interface and the celebration message are written in Turkish. Why?&lt;/p&gt;

&lt;p&gt;Because some things, like a heartfelt birthday wish or the command to “&lt;em&gt;Mumları üfle&lt;/em&gt;” (Blow out the candles), just carry more soul in your native language. It adds a personal, intimate touch to a digital interaction that code alone can't replicate.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔍 Behind the Scenes (The Tech Stack)
&lt;/h2&gt;

&lt;p&gt;While the final result looks like a simple celebration, the engine under the hood is built with the same precision I apply to my data-heavy projects:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom CSS Animations:&lt;/strong&gt; I designed the spiral candles and the flickering flame effects using pure &lt;code&gt;CSS3&lt;/code&gt;. It was a fun challenge to make the smoke and extinguishing transition feel smooth and responsive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;State Management:&lt;/strong&gt; &lt;code&gt;React&lt;/code&gt; handles the state of each candle. The app listens for when all five candles are toggled to false before launching the Confetti component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responsive UI:&lt;/strong&gt; Whether someone opens this on a high-res desktop or a mobile phone, the cake stays centered and the interaction remains intuitive.&lt;/p&gt;


&lt;h2&gt;
  
  
  🖥️ Choose Your Experience: (Web or Code)
&lt;/h2&gt;

&lt;p&gt;I wanted this project to be accessible for everyone—from my non-tech friends who just want to see the cake, to developers curious about the implementation.&lt;/p&gt;

&lt;p&gt;Live Demo: Instant access → &lt;a href="https://lemancaliskan.github.io/birthday-app/" rel="noopener noreferrer"&gt;Nice Birthday App&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source Code: Cleanly structured &lt;code&gt;React&lt;/code&gt; components for those who want to see how the animations are triggered.&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Explore the Project
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/lemancaliskan" rel="noopener noreferrer"&gt;
        lemancaliskan
      &lt;/a&gt; / &lt;a href="https://github.com/lemancaliskan/birthday-app" rel="noopener noreferrer"&gt;
        birthday-app
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Interactive React.js web application for birthday greetings. Includes state-managed animations, CSS-based spiral candle designs, and responsive Ul components.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🎂 Birthday Celebration App&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;This project is an interactive, fun, and modern digital greeting card application designed to celebrate your loved ones' birthdays
Users can "blow out" the candles on the cake (by hovering over them) to trigger a secret message and a confetti celebration.&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://lemancaliskan.github.io/birthday-app/" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/df634433b0aa6a48eff7096594d131e869edd15b6d5cb0e345e80f91a3fa0080/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6963652042697274686461792d3830304632463f7374796c653d666f722d7468652d6261646765266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465" height="55" alt="Netlify"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📺 Screenshots&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/573952900-ad9044db-1092-4fd5-9b63-432459884188.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NzM5NTI5MDAtYWQ5MDQ0ZGItMTA5Mi00ZmQ1LTliNjMtNDMyNDU5ODg0MTg4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYmU1ZmI4MDZjNjY0OTE1MmZmNDI0ZWIwMWI2NzQ1MjAxZjU4N2RlNTJmM2JhODNjMjQ1OWUyOGVlNTJjMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QxEUFTAbdYCTK0PadvW2SLhaOmDSNilAacN5VY0xpps"&gt;&lt;img width="770" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F573952900-ad9044db-1092-4fd5-9b63-432459884188.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NzM5NTI5MDAtYWQ5MDQ0ZGItMTA5Mi00ZmQ1LTliNjMtNDMyNDU5ODg0MTg4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYmU1ZmI4MDZjNjY0OTE1MmZmNDI0ZWIwMWI2NzQ1MjAxZjU4N2RlNTJmM2JhODNjMjQ1OWUyOGVlNTJjMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QxEUFTAbdYCTK0PadvW2SLhaOmDSNilAacN5VY0xpps"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/573952927-921ba935-688f-4c37-ba48-fbe631382761.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NzM5NTI5MjctOTIxYmE5MzUtNjg4Zi00YzM3LWJhNDgtZmJlNjMxMzgyNzYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE0NmM1MDgxMTc3MmExYTFiYzFiYTAwYzAzMzhlYTNhNjYzODNiNmVhNjFhOGI3YTM4ODNmY2QxYmExZDQzYTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cHR02OE6tbUCuSaRhOm-QFUR2dF_AIgELsvHVW-9t4w"&gt;&lt;img width="770" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F573952927-921ba935-688f-4c37-ba48-fbe631382761.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NzM5NTI5MjctOTIxYmE5MzUtNjg4Zi00YzM3LWJhNDgtZmJlNjMxMzgyNzYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE0NmM1MDgxMTc3MmExYTFiYzFiYTAwYzAzMzhlYTNhNjYzODNiNmVhNjFhOGI3YTM4ODNmY2QxYmExZDQzYTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cHR02OE6tbUCuSaRhOm-QFUR2dF_AIgELsvHVW-9t4w"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Candles:&lt;/strong&gt; Realistic extinguishing effect when hovering over the candles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Surprise Celebration:&lt;/strong&gt; Automatic confetti rain and a special message card triggered once all candles are blown out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design:&lt;/strong&gt; Fully compatible with mobile and desktop devices with a sleek interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern Tech Stack:&lt;/strong&gt; Developed using &lt;code&gt;React.js&lt;/code&gt; and the &lt;code&gt;Lucide-react&lt;/code&gt; icon library.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🧬 Technologies Used&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;React 18:&lt;/strong&gt; Component-based UI development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CSS3:&lt;/strong&gt; Custom spiral candle designs and smooth animations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lucide React:&lt;/strong&gt; Modern and lightweight icon sets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Fonts:&lt;/strong&gt; Montserrat typeface for a clean look.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Live Demo (Web Version)&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;You can now try the application directly in your browser without any installation
Go…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lemancaliskan/birthday-app" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;





&lt;h2&gt;
  
  
  🫱🏻‍🫲🏻 Contributing
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;“If you have ideas for new interactive features perhaps adding different cake flavors or a ‘make a wish’ voice trigger feel free to open an issue or a Pull Request. Let’s keep building things that make the web a friendlier place.”&lt;/em&gt;&lt;/p&gt;




</description>
      <category>frontend</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Restoring the Rhythm of Rest: Introducing SleepMetrics</title>
      <dc:creator>Leman Caliskan</dc:creator>
      <pubDate>Mon, 06 Apr 2026 14:30:35 +0000</pubDate>
      <link>https://forem.com/lemancaliskan/restoring-the-rhythm-of-rest-introducing-sleepmetrics-16d5</link>
      <guid>https://forem.com/lemancaliskan/restoring-the-rhythm-of-rest-introducing-sleepmetrics-16d5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foq88g3hjcvx2z64wngwt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foq88g3hjcvx2z64wngwt.png" alt="SleepMetrics Logo" width="300" height="36"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honestly, I never planned to build something like &lt;code&gt;SleepMetrics&lt;/code&gt;. Not at first.&lt;/p&gt;

&lt;p&gt;I developed CardioMetrics-Core what is an AI-powered desktop application that analyzes clinical data to evaluate cardiovascular risk levels and provide real-time health insights using machine learning models.&lt;/p&gt;

&lt;p&gt;And I enjoyed developing the CardioMetrics project. And I thought, could I create a similar application related to health? And that’s how Sleepmetrics was created.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ My Approach
&lt;/h2&gt;

&lt;p&gt;I wanted SleepMetrics to be more than just a spreadsheet of numbers. The tool needed to be simple, functional, and professional.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CustomTkinter&lt;/code&gt; ended up being a surprisingly good fit once again. I maintained the light/dark modes to ensure the interface felt comfortable to use especially important for an app you might check at night.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Real-time Visualization:&lt;/em&gt;&lt;/strong&gt; I integrated live gauges that react to your data. When you adjust stress levels or physical activity, the app provides immediate visual feedback.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Personalized Sleep Insights:&lt;/em&gt;&lt;/strong&gt; The app doesn't just show numbers; it provides specific guidance based on sleep duration, activity levels, and stress to help you optimize your rest.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dpw4ilouv06cyi13hez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dpw4ilouv06cyi13hez.png" alt="SleepMetrics Desktop app in Turkish UI" width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmk4o98puv88g2m1m57b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmk4o98puv88g2m1m57b.png" alt="SleepMetrics Desktop app in English UI" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🩺 Smart Health Recommendations
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Based on the lifestyle and clinical data entered, SleepMetrics generates a dynamic dashboard of personalized suggestions. These aren't generic tips; they are reactive nudges triggered by your specific metrics:&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Disorder &amp;amp; Quality Alerts
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;SleepMetrics transforms your data into three different health statuses based on the machine learning model’s findings:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sleep Apnea Risk Detected&lt;/strong&gt; 🚨: If the model identifies patterns consistent with Apnea, the app triggers a high-priority alert (Red) recommending a consultation with an ENT specialist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Insomnia Symptoms Detected&lt;/strong&gt; ⚠️: When insomnia markers appear, the app provides practical tips, such as cutting out blue light sources 2 hours before bed to help your brain naturally produce melatonin.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Healthy / Asymptomatic&lt;/strong&gt; ✅: If no risks are detected, the app encourages you to keep up the good work, confirming your data aligns with a healthy sleep profile.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔍 Parameter Specific Health Recommendations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stress Management&lt;/strong&gt; 🧘: If stress levels exceed 7/10, the app suggests pre-sleep breathing exercises to lower cortisol levels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sleep Duration ⏰: Logging less than 6 hours triggers a warning about the lack of physical repair and encourages a 7+ hour target.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Activity &amp;amp; Movement&lt;/strong&gt; 👣: Low step counts (&amp;lt; 5,000) or low activity trigger a reminder that reaching 7,500 steps can shorten the time it takes to fall asleep by 15%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Heart Rate &amp;amp; BP&lt;/strong&gt; ❤️: High readings prompt advice to reduce caffeine intake and monitor vitals more closely.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: They’re not the a substitute for professional medical advice, diagnosis, or treatment. It just a simple advices and friendly nudges to support your heart health.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 The Tech Stack &amp;amp; Model
&lt;/h2&gt;

&lt;p&gt;For the backend, I used these datasets &lt;strong&gt;&lt;a href="https://www.kaggle.com/datasets/uom190346a/sleep-health-and-lifestyle-dataset" rel="noopener noreferrer"&gt;Sleep Health and Lifestyle&lt;/a&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;a href="https://www.kaggle.com/datasets/adilshamim8/sleep-cycle-and-productivity" rel="noopener noreferrer"&gt;Sleep Cycle and Productivity&lt;/a&gt;&lt;/strong&gt; from Kaggle. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;I built a dual-engine system:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yh2da9mkfyftjeeco2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yh2da9mkfyftjeeco2c.png" alt="Backend Engine" width="410" height="110"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Quality Prediction:&lt;/strong&gt; A &lt;code&gt;RandomForestRegressor&lt;/code&gt; (150 estimators) handles the sleep quality score with a 99.08% $R^2$ accuracy.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Diagnosis:&lt;/strong&gt; A GradientBoostingClassifier predicts potential sleep disorders with 88% accuracy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model provides a signal: &lt;em&gt;"maybe check this out."&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Why Two Languages? (EN/TR)
&lt;/h2&gt;

&lt;p&gt;As I’m Turkish, I developed the app in Turkish first. But health is universal. I restructured the project to have clean &lt;code&gt;v_EN&lt;/code&gt; and &lt;code&gt;v_TR&lt;/code&gt; folders so language would never be a barrier to access.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖥️ Choose Your Experience: (Web, Desktop, or Code)
&lt;/h2&gt;

&lt;p&gt;People have different preferences. Some want instant access, some prefer a standalone desktop app, some just want the code.&lt;br&gt;
So I made three options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit Web App:&lt;/strong&gt; quick access → &lt;a href="https://sleepmetrics.streamlit.app" rel="noopener noreferrer"&gt;SleepMetrics Streamlit App&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktop App:&lt;/strong&gt; A pre-built &lt;code&gt;.exe&lt;/code&gt; file (no Python environment required). Just download and run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; Cleanly structured folders with clear &lt;code&gt;EN/TR&lt;/code&gt; separation for the curious.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qdiieh1281wkcrr9395.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8qdiieh1281wkcrr9395.png" alt="SleepMetrics Web-app (Streamlit Version)" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Explore the Project
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/lemancaliskan" rel="noopener noreferrer"&gt;
        lemancaliskan
      &lt;/a&gt; / &lt;a href="https://github.com/lemancaliskan/SleepMetrics" rel="noopener noreferrer"&gt;
        SleepMetrics
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Sleep Health &amp;amp; Lifestyle Analysis Tool: An AI-powered desktop application that analyzes biometric data to predict sleep quality and detect potential sleep disorders using machine learning models.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌙 SleepMetrics - Sleep Health &amp;amp; Lifestyle Analysis Tool&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;SleepMetrics is a modern desktop application designed to analyze sleep quality and predict potential sleep disorders using advanced machine learning algorithms. By processing lifestyle and clinical data through a sleek, high-DPI interface, it provides users with data-driven insights into their sleep health.&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://sleepmetrics.streamlit.app" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/96fbb1186947e402830250e2bc146dcfb8626253f24f33f8753528d2c3799aad/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536c6565704d6574726963732d3338433246463f7374796c653d666f722d7468652d6261646765266c6f676f3d73747265616d6c6974266c6f676f436f6c6f723d7768697465" height="55" alt="Streamlit"&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📺 Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🎨 Visual Experience&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;The application features a dedicated toggle for seamless switching between light and dark modes.&lt;/em&gt;
&lt;br&gt;&lt;em&gt;Features integrated real-time gauges for the live visualization of sleep quality scores.&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔍 Desktop Application (EN/TR)&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Optimized for a 980x666 centered window layout, this standalone application delivers a precision-focused, localized experience through a theme-aware &lt;code&gt;CustomTkinter&lt;/code&gt; UI designed for both global and local users.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TURKISH UI:&lt;/strong&gt;
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/562088338-b4598d99-01c8-4dd0-b83a-772d1a9f524a.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIwODgzMzgtYjQ1OThkOTktMDFjOC00ZGQwLWI4M2EtNzcyZDFhOWY1MjRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ3Y2Q0Njc3NzUzOTY0ZmRiZTRiMTZhNjc5YmRjMzAzOTc0ODExMmE2NjFjOGEwODJhYjViNjFiYjA3MjNiOWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XE8f5fDj9bDYRn2xv2HVt4XXf-FJzDk-0Dov4qm4nwU"&gt;&lt;img width="670" height="687" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F562088338-b4598d99-01c8-4dd0-b83a-772d1a9f524a.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIwODgzMzgtYjQ1OThkOTktMDFjOC00ZGQwLWI4M2EtNzcyZDFhOWY1MjRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ3Y2Q0Njc3NzUzOTY0ZmRiZTRiMTZhNjc5YmRjMzAzOTc0ODExMmE2NjFjOGEwODJhYjViNjFiYjA3MjNiOWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XE8f5fDj9bDYRn2xv2HVt4XXf-FJzDk-0Dov4qm4nwU"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ENGLISH UI:&lt;/strong&gt;
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/562105970-19fbcc9b-2320-410a-8f60-b262fd0cdcd9.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIxMDU5NzAtMTlmYmNjOWItMjMyMC00MTBhLThmNjAtYjI2MmZkMGNkY2Q5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyZWY4OThkZGUwYzE5NGU1ZTc2ZGY5MWY0NDU5YTQ4MDZiMmQ5ZGVhM2MxOWRhOGMwMmFjOWUyNGEzMzlmYWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FzWCRUOdafhnf_oD9kkvR64z23dr3uVSurjFvTzzwLk"&gt;&lt;img width="670" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F562105970-19fbcc9b-2320-410a-8f60-b262fd0cdcd9.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIxMDU5NzAtMTlmYmNjOWItMjMyMC00MTBhLThmNjAtYjI2MmZkMGNkY2Q5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyZWY4OThkZGUwYzE5NGU1ZTc2ZGY5MWY0NDU5YTQ4MDZiMmQ5ZGVhM2MxOWRhOGMwMmFjOWUyNGEzMzlmYWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FzWCRUOdafhnf_oD9kkvR64z23dr3uVSurjFvTzzwLk"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🌐 Web Application (Streamlit):&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A responsive and lightweight web version for instant access from any device.&lt;/em&gt;
&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/562106616-75d2692a-30ef-4331-b27b-ff47140b947d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIxMDY2MTYtNzVkMjY5MmEtMzBlZi00MzMxLWIyN2ItZmY0NzE0MGI5NDdkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5NDAxOGRkYTQxNjE0Y2UwZDI5OTJjOWZmZWM3ODE5ZGU4MmJhNzliYzExNzY1M2Q1MTY3M2RjODc1ZTk3M2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sSkYQv6yIz1QVDBRoK6BCnk5BFmRgwRYBfud6p88Hz4"&gt;&lt;img width="670" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F562106616-75d2692a-30ef-4331-b27b-ff47140b947d.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzUsIm5iZiI6MTc3NTc1OTE3NSwicGF0aCI6Ii80Njg3MDg2Ny81NjIxMDY2MTYtNzVkMjY5MmEtMzBlZi00MzMxLWIyN2ItZmY0NzE0MGI5NDdkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE5NDAxOGRkYTQxNjE0Y2UwZDI5OTJjOWZmZWM3ODE5ZGU4MmJhNzliYzExNzY1M2Q1MTY3M2RjODc1ZTk3M2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sSkYQv6yIz1QVDBRoK6BCnk5BFmRgwRYBfud6p88Hz4"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Dual Language Support:&lt;/strong&gt;&lt;/em&gt; Optimized interfaces for both English (EN) and Turkish (TR).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Modern GUI:&lt;/strong&gt;&lt;/em&gt; A…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lemancaliskan/SleepMetrics" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit Web App:&lt;/strong&gt; &lt;a href="https://sleepmetrics.streamlit.app" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktop App:&lt;/strong&gt; Pre-built &lt;code&gt;.exe&lt;/code&gt; available in GitHub Releases.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;If you have ideas on how to improve the ML model or want to suggest new features for the UI, feel free to open an issue or a Pull Request on GitHub. Let’s build better health tools together!&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Medical Disclaimer:&lt;/strong&gt; This software is for informational purposes only. The results provided do not constitute a formal medical diagnosis. Always consult with a professional healthcare provider before making any medical decisions.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>healthtech</category>
    </item>
    <item>
      <title>Bridging the Gap Between Data and Diagnosis: CardioMetrics Core</title>
      <dc:creator>Leman Caliskan</dc:creator>
      <pubDate>Mon, 06 Apr 2026 11:48:55 +0000</pubDate>
      <link>https://forem.com/lemancaliskan/bridging-the-gap-between-data-and-diagnosis-cardiometrics-core-4jlk</link>
      <guid>https://forem.com/lemancaliskan/bridging-the-gap-between-data-and-diagnosis-cardiometrics-core-4jlk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4q374b105etiz0qzw1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa4q374b105etiz0qzw1s.png" alt="CardioMetrics Logo" width="383" height="52"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honestly, I never planned to build something like &lt;code&gt;CardioMetrics Core&lt;/code&gt;. Not at first.&lt;/p&gt;

&lt;p&gt;It all started when I went to the hospital’s cardiology clinic. The waiting room was packed. People with high blood pressure, heart issues, so many patients. It was overwhelming. &lt;/p&gt;

&lt;p&gt;And I kept thinking: if all these people need monitoring, why isn’t there a simple, accessible way to keep track of heart health at home? So I decided to try creating something myself.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ My Approach
&lt;/h2&gt;

&lt;p&gt;I wanted the tool to be simple and functional. Fast, responsive, and easy to interact with—nothing fancy, but still professional. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;CustomTkinter&lt;/code&gt; ended up being a surprisingly good fit. I added light/dark modes, and the interface started to feel comfortable to use.&lt;/p&gt;

&lt;p&gt;One of the key things I focused on was real-time feedback. When users enter values, the app compares parameters like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Systolic Blood Pressure&lt;/li&gt;
&lt;li&gt;Resting Heart Rate&lt;/li&gt;
&lt;li&gt;Cholesterol&lt;/li&gt;
&lt;li&gt;Fasting Blood Sugar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a measurement is outside the reference range, the progress bar changes color (e.g., Red for high risk, Green for normal).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fta40e7weika6q25fm5yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fta40e7weika6q25fm5yh.png" alt="CardioMetrics Desktop app in Turkish UI" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjx2fo18zy4v3rzyk5klo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjx2fo18zy4v3rzyk5klo.png" alt="CardioMetrics Desktop app in English UI" width="800" height="566"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🩺 Smart Health Recommendations
&lt;/h2&gt;

&lt;p&gt;Based on the data entered and the calculated risk score, CardioMetrics Core provides personalized suggestions. These aren't generic tips; they respond directly to your measurements:&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Score-Based Alerts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Critical Risk (Score &amp;gt; 70) 🚨:&lt;/strong&gt; High cardiovascular risk detected. It’s strongly recommended that you consult a cardiologist immediately and start keeping a regular record of your vitals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Moderate Risk (Score 31–70) 👟:&lt;/strong&gt; Your heart health shows some areas to watch. A daily 30-minute brisk walk and a Mediterranean-style diet (reducing salt and saturated fats) can make a huge difference.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low Risk (Score ≤ 30) ✅:&lt;/strong&gt; Your results look good! Maintain your health with regular sleep, hydration, and annual check-ups.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔍 Parameter Specific Alerts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blood Pressure:&lt;/strong&gt; High (above 140 mmHg) triggers salt intake warnings, while Low (below 90 mmHg) suggests better hydration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blood Sugar:&lt;/strong&gt; High readings (above 120 mg/dL) suggest reducing carbohydrate intake and discussing lifestyle adjustments with a doctor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cholesterol:&lt;/strong&gt; High levels (above 240 mg/dL) prompt advice to avoid high-fat foods, while borderline levels suggest dietary shifts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: They’re not the a substitute for professional medical advice, diagnosis, or treatment. It just a simple advices and friendly nudges to support your heart health.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 The Tech Stack &amp;amp; Model
&lt;/h2&gt;

&lt;p&gt;For the backend, I used the &lt;strong&gt;&lt;a href="https://www.kaggle.com/datasets/johnsmith88/heart-disease-dataset" rel="noopener noreferrer"&gt;Heart Disease Dataset&lt;/a&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core:&lt;/strong&gt; Python, scikit-learn&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Models:&lt;/strong&gt; Logistic Regression, Random Forest&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI:&lt;/strong&gt; CustomTkinter (Desktop) &amp;amp; Streamlit (Web)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model sits at around &lt;code&gt;%68.29&lt;/code&gt; accuracy. It’s not a medical diagnosis tool; it’s a signal: &lt;em&gt;“maybe check this out.”&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Why Two Languages? (EN/TR)
&lt;/h2&gt;

&lt;p&gt;As I’m Turkish, I developed the app in Turkish first. But health is universal. I restructured the project to have clean &lt;code&gt;v_EN&lt;/code&gt; and &lt;code&gt;v_TR&lt;/code&gt; folders so language would never be a barrier to access.&lt;/p&gt;




&lt;h2&gt;
  
  
  🖥️ Choose Your Experience: (Web, Desktop, or Code)
&lt;/h2&gt;

&lt;p&gt;People have different preferences. Some want instant access, some prefer a standalone desktop app, some just want the code.&lt;br&gt;
So I made three options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit Web App:&lt;/strong&gt; quick access → &lt;a href="https://cardiometrics-core.streamlit.app" rel="noopener noreferrer"&gt;CardioMetrics Streamlit App&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktop App:&lt;/strong&gt; A pre-built &lt;code&gt;.exe&lt;/code&gt; file (no Python environment required). Just download and run.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; Cleanly structured folders with clear &lt;code&gt;EN/TR&lt;/code&gt; separation for the curious.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe52rwea0o0opvvvqg35k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe52rwea0o0opvvvqg35k.png" alt="CardioMetrics Web-app (Streamlit Version)" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🚀 Explore the Project
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/lemancaliskan" rel="noopener noreferrer"&gt;
        lemancaliskan
      &lt;/a&gt; / &lt;a href="https://github.com/lemancaliskan/CardioMetrics-Core" rel="noopener noreferrer"&gt;
        CardioMetrics-Core
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Cardiovascular Risk Assessment Tool: An AI-powered desktop application that analyzes clinical data to evaluate cardiovascular risk levels and provide real-time health insights using machine learning models.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;❤️ CardioMetrics Core - Cardiovascular Risk Analysis Tool&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;CardioMetrics is a modern desktop application designed to analyze cardiovascular risk using machine learning algorithms. It provides meaningful health insights by processing clinical data through a user-friendly interface.&lt;/em&gt;&lt;/p&gt;
 &lt;p&gt;&lt;a href="https://cardiometrics-core.streamlit.app" rel="nofollow noopener noreferrer"&gt;
    &lt;img src="https://camo.githubusercontent.com/9bfa9f272858ce826c92586ac20d79d059a93c7264f5c141def657e29c9ea167/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f43617264696f4d6574726963732d6666346234623f7374796c653d666f722d7468652d6261646765266c6f676f3d73747265616d6c6974266c6f676f436f6c6f723d7768697465" height="55" alt="Streamlit"&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;📺 Demo&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🎨 Visual Experience&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;The application features a dedicated toggle for seamless switching between light and dark modes.&lt;/em&gt;
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://github.com/user-attachments/assets/2767a64c-49b6-4da9-b17c-cbb079b90c93"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2F2767a64c-49b6-4da9-b17c-cbb079b90c93" width="670" alt="CardioMetrics Dark/Light Mode Switch"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🔍 Desktop Application (EN/TR)&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;Optimized for a 980x666 centered window layout, this standalone application delivers a precision-focused, localized experience through a theme-aware &lt;code&gt;CustomTkinter&lt;/code&gt; UI designed for both global and local users.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ENGLISH UI:&lt;/strong&gt;
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://github.com/user-attachments/assets/de83e81b-0e34-4841-a060-c9d58731d3bc"&gt;&lt;img width="670" height="685" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Fde83e81b-0e34-4841-a060-c9d58731d3bc"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TURKISH UI:&lt;/strong&gt;
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://github.com/user-attachments/assets/fac83157-0527-4bae-939b-e8f063c4e4a4"&gt;&lt;img width="670" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fuser-attachments%2Fassets%2Ffac83157-0527-4bae-939b-e8f063c4e4a4"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🌐 Web Application (Streamlit):&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;A responsive and lightweight web version for instant access from any device.
&lt;br&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/46870867/561689046-db682eb8-3be1-4a86-baae-fbe30c5c6576.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzQsIm5iZiI6MTc3NTc1OTE3NCwicGF0aCI6Ii80Njg3MDg2Ny81NjE2ODkwNDYtZGI2ODJlYjgtM2JlMS00YTg2LWJhYWUtZmJlMzBjNWM2NTc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlhZDk0MjNkYmE2OTlkODEyYjYzNDdkMGUyNjhjY2FlNGI4YWI2MmMwOThkMTcwYjIxYTJjMGE0ZWUwMjVkNmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.X_3enwcrL-Q33xkapQNi1adiUT9vb_F1RpJDobmKYBg"&gt;&lt;img width="670" alt="image" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F46870867%2F561689046-db682eb8-3be1-4a86-baae-fbe30c5c6576.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3NTk0NzQsIm5iZiI6MTc3NTc1OTE3NCwicGF0aCI6Ii80Njg3MDg2Ny81NjE2ODkwNDYtZGI2ODJlYjgtM2JlMS00YTg2LWJhYWUtZmJlMzBjNWM2NTc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDE4MjYxNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlhZDk0MjNkYmE2OTlkODEyYjYzNDdkMGUyNjhjY2FlNGI4YWI2MmMwOThkMTcwYjIxYTJjMGE0ZWUwMjVkNmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.X_3enwcrL-Q33xkapQNi1adiUT9vb_F1RpJDobmKYBg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Dual Language Support:&lt;/strong&gt;&lt;/em&gt; Optimized interfaces for both English (EN) and Turkish (TR).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Modern GUI:&lt;/strong&gt;&lt;/em&gt; A sleek design powered by CustomTkinter with native Dark and Light mode support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Smart Analysis:&lt;/strong&gt;&lt;/em&gt; Real-time risk estimation using scikit-learn models (Logistic Regression / Random Forest).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Visual Reporting:&lt;/strong&gt;&lt;/em&gt;…&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/lemancaliskan/CardioMetrics-Core" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit Web App:&lt;/strong&gt; &lt;a href="https://cardiometrics-core.streamlit.app" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Desktop App:&lt;/strong&gt; Pre-built .exe available in GitHub Releases.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;If you have ideas on how to improve the ML model or want to suggest new features for the UI, feel free to open an issue or a Pull Request on GitHub. Let’s build better health tools together!&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Medical Disclaimer:&lt;/strong&gt; This software is for informational purposes only. The results provided do not constitute a formal medical diagnosis. Always consult with a professional healthcare provider before making any medical decisions.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>healthtech</category>
    </item>
  </channel>
</rss>
