<?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: Falak Sher</title>
    <description>The latest articles on DEV Community by Falak Sher (@falaksherdev).</description>
    <link>https://dev.to/falaksherdev</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4181796%2F41651613-d8a4-4c52-a9bc-8a3de7c7460f.jpeg</url>
      <title>DEV Community: Falak Sher</title>
      <link>https://dev.to/falaksherdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/falaksherdev"/>
    <language>en</language>
    <item>
      <title>Building MoneyMov — A Free Personal Finance Tracker with MERN</title>
      <dc:creator>Falak Sher</dc:creator>
      <pubDate>Tue, 13 Oct 2026 19:52:35 +0000</pubDate>
      <link>https://dev.to/falaksherdev/building-moneymov-a-free-personal-finance-tracker-with-mern-bm2</link>
      <guid>https://dev.to/falaksherdev/building-moneymov-a-free-personal-finance-tracker-with-mern-bm2</guid>
      <description>&lt;p&gt;I recently built &lt;strong&gt;MoneyMov&lt;/strong&gt;, a free personal finance tracker to help people understand where their money is going.&lt;/p&gt;

&lt;p&gt;The idea was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Know where your money moves.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of building another complicated finance application, I wanted to create something simple enough for everyday use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is MoneyMov?
&lt;/h2&gt;

&lt;p&gt;MoneyMov is a personal finance tracker where users can manage their:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;💰 Income&lt;/li&gt;
&lt;li&gt;💸 Expenses&lt;/li&gt;
&lt;li&gt;📊 Spending categories&lt;/li&gt;
&lt;li&gt;📈 Investments&lt;/li&gt;
&lt;li&gt;🤝 Committees / Bachat&lt;/li&gt;
&lt;li&gt;💵 Lending / Loans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The additional modules are optional, so users can use only the parts they actually need.&lt;/p&gt;

&lt;p&gt;For example, someone may only want to track expenses, while another person may also want to keep track of investments or money they've lent to someone.&lt;/p&gt;

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

&lt;p&gt;I built the application using the MERN stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB&lt;/strong&gt; — Database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Express.js&lt;/strong&gt; — Backend API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React.js&lt;/strong&gt; — Frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; — Backend runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Axios&lt;/strong&gt; — API requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tailwind CSS&lt;/strong&gt; — UI styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recharts&lt;/strong&gt; — Charts and data visualization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JWT&lt;/strong&gt; — Authentication&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;bcrypt&lt;/strong&gt; — Password hashing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The frontend is deployed on &lt;strong&gt;Netlify&lt;/strong&gt;, while the backend is deployed on &lt;strong&gt;Render&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication &amp;amp; Security
&lt;/h2&gt;

&lt;p&gt;One of the things I focused on while building the project was authentication and basic application security.&lt;/p&gt;

&lt;p&gt;Some of the things implemented include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Password hashing with bcrypt&lt;/li&gt;
&lt;li&gt;HTTP-only authentication cookies&lt;/li&gt;
&lt;li&gt;JWT-based authentication&lt;/li&gt;
&lt;li&gt;Protected API routes&lt;/li&gt;
&lt;li&gt;Environment variables for secrets&lt;/li&gt;
&lt;li&gt;Forgot-password functionality&lt;/li&gt;
&lt;li&gt;Hashed password-reset tokens&lt;/li&gt;
&lt;li&gt;Token expiration&lt;/li&gt;
&lt;li&gt;Helmet&lt;/li&gt;
&lt;li&gt;Rate limiting&lt;/li&gt;
&lt;li&gt;MongoDB input sanitization&lt;/li&gt;
&lt;li&gt;HTTP Parameter Pollution protection&lt;/li&gt;
&lt;li&gt;User-specific data access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, the backend doesn't simply trust the user ID coming from the frontend.&lt;/p&gt;

&lt;p&gt;The authentication middleware verifies the token and gets the authenticated user's ID before accessing their data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spending Visualization
&lt;/h2&gt;

&lt;p&gt;One of the dashboard features is a category-based spending breakdown.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Shopping      Rs 400
Food          Rs 1,200
Transport     Rs 500
Bills         Rs 2,000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The data is also visualized using a pie chart so users can quickly understand where most of their spending went.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some Challenges
&lt;/h2&gt;

&lt;p&gt;Building the application wasn't completely straightforward.&lt;/p&gt;

&lt;p&gt;I ran into several issues during development and deployment, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB Atlas connection timeouts&lt;/li&gt;
&lt;li&gt;Render deployment and networking issues&lt;/li&gt;
&lt;li&gt;SMTP connection problems&lt;/li&gt;
&lt;li&gt;Authentication cookies&lt;/li&gt;
&lt;li&gt;CORS configuration&lt;/li&gt;
&lt;li&gt;Express proxy configuration&lt;/li&gt;
&lt;li&gt;SPA routing on Netlify&lt;/li&gt;
&lt;li&gt;Mobile authentication behavior&lt;/li&gt;
&lt;li&gt;Handling protected routes correctly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These problems were actually a useful part of the project because they forced me to understand what was happening beyond simply writing React components.&lt;/p&gt;

&lt;p&gt;For example, deploying a MERN application locally is very different from deploying the frontend and backend separately.&lt;/p&gt;

&lt;p&gt;You have to think about how each layer communicates in production:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   ↓
API requests
   ↓
Backend
   ↓
Authentication
   ↓
Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each layer introduces its own configuration, security considerations, and potential issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted to build something that was more than just another CRUD project.&lt;/p&gt;

&lt;p&gt;While working on MoneyMov, I got to work with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authentication&lt;/li&gt;
&lt;li&gt;REST APIs&lt;/li&gt;
&lt;li&gt;MongoDB&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Email verification&lt;/li&gt;
&lt;li&gt;Password reset&lt;/li&gt;
&lt;li&gt;Data visualization&lt;/li&gt;
&lt;li&gt;Responsive UI&lt;/li&gt;
&lt;li&gt;Production debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also gave me a chance to work through problems that don't usually appear when everything is running on localhost.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;There are still several things I want to improve.&lt;/p&gt;

&lt;p&gt;Some ideas include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better dashboard analytics&lt;/li&gt;
&lt;li&gt;More useful financial reports&lt;/li&gt;
&lt;li&gt;Improved mobile experience&lt;/li&gt;
&lt;li&gt;Better transaction filtering&lt;/li&gt;
&lt;li&gt;More visualizations&lt;/li&gt;
&lt;li&gt;Exporting financial data&lt;/li&gt;
&lt;li&gt;Additional security improvements&lt;/li&gt;
&lt;li&gt;Performance improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MoneyMov is currently free, and my goal is to keep the core personal finance features simple and accessible.&lt;/p&gt;

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

&lt;p&gt;This project started as an idea for a simple expense tracker, but it gradually became a much bigger learning experience.&lt;/p&gt;

&lt;p&gt;The biggest thing I learned is that building a real application isn't only about making the UI work.&lt;/p&gt;

&lt;p&gt;You also have to think about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication → Security → APIs → Database → Deployment → Users&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where a lot of the interesting engineering problems begin.&lt;/p&gt;

&lt;p&gt;If you're also building a MERN application, I'd be interested to hear what problems you've run into while deploying your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try MoneyMov
&lt;/h2&gt;

&lt;p&gt;MoneyMov is free to use. Give it a try and let me know what you think!&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Website:&lt;/strong&gt; &lt;a href="https://moneymov.netlify.app" rel="noopener noreferrer"&gt;https://moneymov.netlify.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MoneyMov — Know where your money moves.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>react</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
