<?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: iqbal singh</title>
    <description>The latest articles on DEV Community by iqbal singh (@iqbal_singh_c7de77cdeca1a).</description>
    <link>https://dev.to/iqbal_singh_c7de77cdeca1a</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%2F3772775%2Ff8e0b1b8-0c1e-4781-aae5-6275320b76f1.png</url>
      <title>DEV Community: iqbal singh</title>
      <link>https://dev.to/iqbal_singh_c7de77cdeca1a</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iqbal_singh_c7de77cdeca1a"/>
    <language>en</language>
    <item>
      <title># Building a Community Rewards Platform with Flutter, Firebase and Weekly Rewards</title>
      <dc:creator>iqbal singh</dc:creator>
      <pubDate>Sat, 06 Jun 2026 01:27:06 +0000</pubDate>
      <link>https://dev.to/iqbal_singh_c7de77cdeca1a/-building-a-community-rewards-platform-with-flutter-firebase-and-weekly-rewards-173f</link>
      <guid>https://dev.to/iqbal_singh_c7de77cdeca1a/-building-a-community-rewards-platform-with-flutter-firebase-and-weekly-rewards-173f</guid>
      <description>&lt;p&gt;Over the past year, I've been building a project called &lt;a href="https://work-networks.com/" rel="noopener noreferrer"&gt;WORK Network&lt;/a&gt;, a community-focused rewards platform designed around participation, progress tracking, and weekly rewards.&lt;/p&gt;

&lt;p&gt;Like many side projects, it started as a simple idea and gradually evolved into something much larger.&lt;/p&gt;

&lt;p&gt;One of the biggest lessons I learned is that building the app is often easier than building the systems around it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technology Stack
&lt;/h2&gt;

&lt;p&gt;The current platform is built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flutter&lt;/li&gt;
&lt;li&gt;Firebase Authentication&lt;/li&gt;
&lt;li&gt;Cloud Firestore&lt;/li&gt;
&lt;li&gt;Firebase Cloud Functions&lt;/li&gt;
&lt;li&gt;Firebase Hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flutter allowed a single codebase for Android and iOS, while Firebase significantly reduced backend complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Challenge: Fair Rewards
&lt;/h2&gt;

&lt;p&gt;Creating screens and buttons was relatively straightforward.&lt;/p&gt;

&lt;p&gt;The difficult part was designing a reward system that could remain fair as the platform grew.&lt;/p&gt;

&lt;p&gt;Some of the questions I had to solve included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do weekly rewards work?&lt;/li&gt;
&lt;li&gt;How can duplicate rewards be prevented?&lt;/li&gt;
&lt;li&gt;How can progress be tracked accurately?&lt;/li&gt;
&lt;li&gt;How can reward calculations remain consistent across devices?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As the project evolved, reward logic moved away from the client and into backend-controlled systems wherever possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Weekly Rewards System
&lt;/h2&gt;

&lt;p&gt;One of the most interesting features is a weekly rewards model.&lt;/p&gt;

&lt;p&gt;Instead of focusing only on daily activity, the platform tracks participation over time and allows users to qualify for weekly community rewards.&lt;/p&gt;

&lt;p&gt;From a technical perspective this required:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Weekly snapshots&lt;/li&gt;
&lt;li&gt;Reward qualification logic&lt;/li&gt;
&lt;li&gt;Historical record keeping&lt;/li&gt;
&lt;li&gt;Winner selection processes&lt;/li&gt;
&lt;li&gt;Administrative controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building these systems taught me the importance of separating configuration, historical records, and live user data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Firebase Lessons
&lt;/h2&gt;

&lt;p&gt;Firebase has been incredibly productive, but there are some lessons I wish I knew earlier.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Design Data Structures Carefully
&lt;/h3&gt;

&lt;p&gt;Changing Firestore structures later becomes expensive.&lt;/p&gt;

&lt;p&gt;Spending more time on schema design early would have saved many migrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Keep the Backend as the Source of Truth
&lt;/h3&gt;

&lt;p&gt;Any reward system should assume the client can be manipulated.&lt;/p&gt;

&lt;p&gt;Critical reward validation should happen on the backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Plan for Growth
&lt;/h3&gt;

&lt;p&gt;Queries that work for 100 users may not work for 10,000 users.&lt;/p&gt;

&lt;p&gt;Indexes, aggregation strategies, and collection structures become increasingly important.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building in Public
&lt;/h2&gt;

&lt;p&gt;One unexpected benefit has been feedback from early users.&lt;/p&gt;

&lt;p&gt;Several features that exist today came directly from community suggestions rather than my original roadmap.&lt;/p&gt;

&lt;p&gt;The process reinforced an important lesson:&lt;/p&gt;

&lt;p&gt;Users often identify the most valuable improvements long before developers do.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://work-networks.com/" rel="noopener noreferrer"&gt;WORK Network&lt;/a&gt; is still evolving, and there are many features planned for the future.&lt;/p&gt;

&lt;p&gt;The journey has been a reminder that successful applications are rarely built in a straight line. They evolve through experimentation, mistakes, user feedback, and continuous improvement.&lt;/p&gt;

&lt;p&gt;For developers building their own projects, my advice is simple:&lt;/p&gt;

&lt;p&gt;Start small.&lt;br&gt;
Ship early.&lt;br&gt;
Listen to users.&lt;br&gt;
Keep improving.&lt;/p&gt;

&lt;p&gt;Those four principles have helped shape every stage of this project so far.&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>mobile</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Detecting if a User Is Actually Present on Mobile (Without Using Camera or Spying)</title>
      <dc:creator>iqbal singh</dc:creator>
      <pubDate>Wed, 18 Feb 2026 01:02:12 +0000</pubDate>
      <link>https://dev.to/iqbal_singh_c7de77cdeca1a/detecting-if-a-user-is-actually-present-on-mobile-without-using-camera-or-spying-1f64</link>
      <guid>https://dev.to/iqbal_singh_c7de77cdeca1a/detecting-if-a-user-is-actually-present-on-mobile-without-using-camera-or-spying-1f64</guid>
      <description>&lt;p&gt;One of the first problems we hit while building a reward-based mobile app was unexpected.&lt;/p&gt;

&lt;p&gt;Not performance.&lt;br&gt;
Not scaling.&lt;br&gt;
Not payments.&lt;/p&gt;

&lt;p&gt;Presence.&lt;/p&gt;

&lt;p&gt;The Internet Counts Activity — Not Attention&lt;/p&gt;

&lt;p&gt;Most systems assume something very simple:&lt;/p&gt;

&lt;p&gt;If the app is open → the user is there.&lt;/p&gt;

&lt;p&gt;But mobile behavior doesn’t work like that.&lt;/p&gt;

&lt;p&gt;People open apps and:&lt;/p&gt;

&lt;p&gt;put the phone on the table&lt;/p&gt;

&lt;p&gt;switch to another device&lt;/p&gt;

&lt;p&gt;mute videos&lt;/p&gt;

&lt;p&gt;let content run in background&lt;/p&gt;

&lt;p&gt;auto-play overnight&lt;/p&gt;

&lt;p&gt;From a server perspective, this still looks like engagement.&lt;/p&gt;

&lt;p&gt;From reality… the user left 20 minutes ago.&lt;/p&gt;

&lt;p&gt;If rewards exist, this becomes a serious problem.&lt;/p&gt;

&lt;p&gt;You are no longer rewarding a human.&lt;br&gt;
You are rewarding idle electricity.&lt;/p&gt;

&lt;p&gt;Why Traditional Signals Fail&lt;/p&gt;

&lt;p&gt;At first glance, it sounds easy:&lt;br&gt;
“Just detect interaction.”&lt;/p&gt;

&lt;p&gt;But every simple signal breaks.&lt;/p&gt;

&lt;p&gt;Screen ON → phone could be untouched&lt;br&gt;
Video playing → not watched&lt;br&gt;
App foreground → user not looking&lt;br&gt;
Touch → automation possible&lt;/p&gt;

&lt;p&gt;Even worse — modern mobile OS privacy rules remove many detection options.&lt;br&gt;
No camera usage.&lt;br&gt;
No intrusive monitoring.&lt;br&gt;
No behavioral spying.&lt;/p&gt;

&lt;p&gt;So the question becomes harder:&lt;/p&gt;

&lt;p&gt;How do you verify presence without violating privacy?&lt;/p&gt;

&lt;p&gt;Presence Is a Pattern, Not a Button&lt;/p&gt;

&lt;p&gt;We realized attention isn’t a single action.&lt;/p&gt;

&lt;p&gt;It’s a rhythm.&lt;/p&gt;

&lt;p&gt;Real users behave inconsistently in very consistent ways.&lt;/p&gt;

&lt;p&gt;They:&lt;/p&gt;

&lt;p&gt;react inside natural timing windows&lt;/p&gt;

&lt;p&gt;pause irregularly&lt;/p&gt;

&lt;p&gt;interact slightly differently each time&lt;/p&gt;

&lt;p&gt;get interrupted&lt;/p&gt;

&lt;p&gt;return at human speeds&lt;/p&gt;

&lt;p&gt;Automation behaves differently:&lt;/p&gt;

&lt;p&gt;perfectly timed&lt;/p&gt;

&lt;p&gt;repetitive&lt;/p&gt;

&lt;p&gt;uninterrupted&lt;/p&gt;

&lt;p&gt;statistically smooth&lt;/p&gt;

&lt;p&gt;So instead of detecting one event…&lt;br&gt;
we started validating sequences.&lt;/p&gt;

&lt;p&gt;Not “did you tap?”&lt;br&gt;
But “does your behavior look alive?”&lt;/p&gt;

&lt;p&gt;The Shift in Thinking&lt;/p&gt;

&lt;p&gt;We stopped asking:&lt;/p&gt;

&lt;p&gt;Did the user interact?&lt;/p&gt;

&lt;p&gt;and started asking:&lt;/p&gt;

&lt;p&gt;Could this realistically be a person over time?&lt;/p&gt;

&lt;p&gt;This transforms verification from an event problem into a probability problem.&lt;/p&gt;

&lt;p&gt;Not certainty.&lt;br&gt;
Confidence.&lt;/p&gt;

&lt;p&gt;A presence score instead of a trigger.&lt;/p&gt;

&lt;p&gt;Why This Matters&lt;/p&gt;

&lt;p&gt;Reward systems fail when effort can be simulated.&lt;/p&gt;

&lt;p&gt;If idle phones earn the same as active humans,&lt;br&gt;
the system collapses into farming.&lt;/p&gt;

&lt;p&gt;So before building any economy, we had to answer a simple question:&lt;/p&gt;

&lt;p&gt;Can software recognize presence without surveillance?&lt;/p&gt;

&lt;p&gt;We don’t fully know yet.&lt;/p&gt;

&lt;p&gt;But we are experimenting with something we call:&lt;/p&gt;

&lt;p&gt;Proof-of-Watch — measuring participation instead of playback.&lt;/p&gt;

&lt;p&gt;Because attention might be the only scarce resource left online.&lt;/p&gt;

&lt;p&gt;We’re testing these ideas in a project called WORK Network.&lt;/p&gt;

&lt;p&gt;Feedback and Suggestion welcome &lt;/p&gt;

&lt;p&gt;GooglePlay&lt;br&gt;
&lt;a href="https://play.google.com/store/apps/details?id=com.mobileweb3.workapp" rel="noopener noreferrer"&gt;https://play.google.com/store/apps/details?id=com.mobileweb3.workapp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AppStore&lt;br&gt;
&lt;a href="https://apps.apple.com/us/app/work-app/id6758291781" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/work-app/id6758291781&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>flutter</category>
      <category>development</category>
      <category>ios</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>iqbal singh</dc:creator>
      <pubDate>Sat, 14 Feb 2026 14:52:20 +0000</pubDate>
      <link>https://dev.to/iqbal_singh_c7de77cdeca1a/-4okg</link>
      <guid>https://dev.to/iqbal_singh_c7de77cdeca1a/-4okg</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/iqbal_singh_c7de77cdeca1a" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F3772775%2Ff8e0b1b8-0c1e-4781-aae5-6275320b76f1.png" alt="iqbal_singh_c7de77cdeca1a"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/iqbal_singh_c7de77cdeca1a/we-built-a-system-that-recognizes-human-time-41cf" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;We Built a System That Recognizes Human Time&lt;/h2&gt;
      &lt;h3&gt;iqbal singh ・ Feb 14&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#mobile&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#flutter&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#firebase&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>mobile</category>
      <category>flutter</category>
      <category>firebase</category>
    </item>
    <item>
      <title>We Built a System That Recognizes Human Time</title>
      <dc:creator>iqbal singh</dc:creator>
      <pubDate>Sat, 14 Feb 2026 14:50:46 +0000</pubDate>
      <link>https://dev.to/iqbal_singh_c7de77cdeca1a/we-built-a-system-that-recognizes-human-time-41cf</link>
      <guid>https://dev.to/iqbal_singh_c7de77cdeca1a/we-built-a-system-that-recognizes-human-time-41cf</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%2Fytd7c2dkms9h72wv4ie6.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%2Fytd7c2dkms9h72wv4ie6.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For years the internet has measured everything about us.&lt;/p&gt;

&lt;p&gt;Clicks.&lt;br&gt;
Views.&lt;br&gt;
Location.&lt;br&gt;
Scroll depth.&lt;/p&gt;

&lt;p&gt;But one thing was never measured properly — human attention.&lt;/p&gt;

&lt;p&gt;You can open a video and walk away.&lt;br&gt;
You can mute an ad and leave the phone on the table.&lt;br&gt;
Platforms still count it as engagement.&lt;/p&gt;

&lt;p&gt;We wanted to solve a strange problem:&lt;/p&gt;

&lt;p&gt;The internet knows what you touched —&lt;br&gt;
but it never knew if you were actually there.&lt;/p&gt;

&lt;p&gt;So we built a concept we call Proof-of-Watch.&lt;/p&gt;

&lt;p&gt;A phone-based verification layer that confirms a user actually watched content before rewards are generated.&lt;/p&gt;

&lt;p&gt;Not background farming.&lt;br&gt;
Not bots.&lt;br&gt;
Not auto play abuse.&lt;/p&gt;

&lt;p&gt;Real presence → measurable time → rewardable activity.&lt;/p&gt;

&lt;p&gt;This turns attention into something closer to a resource.&lt;/p&gt;

&lt;p&gt;Bitcoin proved computing power had value.&lt;br&gt;
Staking proved locked capital had value.&lt;/p&gt;

&lt;p&gt;We are experimenting with a simpler question:&lt;/p&gt;

&lt;p&gt;Does human time have value online?&lt;/p&gt;

&lt;p&gt;Because right now billions of hours are spent on phones daily — but none of it belongs to the user.&lt;/p&gt;

&lt;p&gt;We are not trying to replace social media.&lt;br&gt;
We are trying to recognize the human behind the screen.&lt;/p&gt;

&lt;p&gt;If time is life, then attention is digital life.&lt;/p&gt;

&lt;p&gt;And digital life should be measurable.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>flutter</category>
      <category>firebase</category>
    </item>
  </channel>
</rss>
