<?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: Emil</title>
    <description>The latest articles on DEV Community by Emil (@emilp).</description>
    <link>https://dev.to/emilp</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%2F794243%2F7fabe574-31d5-430a-b93a-92554d458efe.jpeg</url>
      <title>DEV Community: Emil</title>
      <link>https://dev.to/emilp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/emilp"/>
    <language>en</language>
    <item>
      <title>I Didn’t Build an Expense Tracker.</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Wed, 24 Dec 2025 12:15:15 +0000</pubDate>
      <link>https://dev.to/emilp/i-didnt-build-an-expense-tracker-h30</link>
      <guid>https://dev.to/emilp/i-didnt-build-an-expense-tracker-h30</guid>
      <description>&lt;p&gt;&lt;strong&gt;I Built a Diary That Knows My Money Better Than I Do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most expense trackers ask you to trust them.&lt;/p&gt;

&lt;p&gt;“Connect your bank account.”&lt;br&gt;
“Grant read access.”&lt;br&gt;
“We promise it’s safe.”&lt;/p&gt;

&lt;p&gt;That never sat right with me.&lt;/p&gt;

&lt;p&gt;So I built something different.&lt;/p&gt;

&lt;p&gt;Not an expense tracker.&lt;br&gt;
A personal diary - written in transactions.&lt;/p&gt;

&lt;p&gt;You can access the open source application here - &lt;a href="https://github.com/emil-ep/xpense-tracker-ui" rel="noopener noreferrer"&gt;https://github.com/emil-ep/xpense-tracker-ui&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A short demo here&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/7cfgMFQSjjw"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your Bank Statement Is the Truth. Everything Else Is Noise.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I realized something simple:&lt;br&gt;
Your bank statement is already perfect.&lt;/p&gt;

&lt;p&gt;It’s:&lt;br&gt;
Accurate&lt;br&gt;
Verifiable&lt;br&gt;
Immutable&lt;br&gt;
Generated by the bank itself&lt;/p&gt;

&lt;p&gt;So instead of asking users for credentials, tokens, or permissions…&lt;/p&gt;

&lt;p&gt;👉 My app takes your bank statement as input. That’s it.&lt;/p&gt;

&lt;p&gt;You download the statement from net banking.&lt;br&gt;
You upload it.&lt;br&gt;
No credentials. No APIs. No “trust us” nonsense.&lt;/p&gt;

&lt;p&gt;Security by design, not by disclaimer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It Reads Your Statement Like a Human Would&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once uploaded, the app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parses the statement&lt;/li&gt;
&lt;li&gt;Understands transactions&lt;/li&gt;
&lt;li&gt;Automatically categorizes expenses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But here’s where it stops being “just finance”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every Transaction Tells a Story&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A ₹2,350 transaction isn’t just “Medical”.&lt;/p&gt;

&lt;p&gt;It might be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A hospital visit&lt;/li&gt;
&lt;li&gt;A pharmacy run&lt;/li&gt;
&lt;li&gt;A lab test on a stressful day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I added context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tags that Learn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You tag a transaction once:&lt;/p&gt;

&lt;p&gt;“Swiggy – Dinner with friends”&lt;/p&gt;

&lt;p&gt;From that point on, every similar transaction is auto-tagged.&lt;/p&gt;

&lt;p&gt;The diary learns your language.&lt;br&gt;
Not the other way around.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attach Memories. Not Just Receipts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each expense can have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documents&lt;/li&gt;
&lt;li&gt;Reports&lt;/li&gt;
&lt;li&gt;Bills&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A medical expense can carry:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The prescription&lt;/li&gt;
&lt;li&gt;The lab report&lt;/li&gt;
&lt;li&gt;A note about what actually happened&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Suddenly, your expenses aren’t rows in a table.&lt;br&gt;
They’re moments in time.&lt;/p&gt;

&lt;p&gt;That’s when it hit me:&lt;/p&gt;

&lt;p&gt;This isn’t an expense tracker.&lt;br&gt;
It’s a timeline of my life — backed by money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search Your Past Like You’d Search Your Mind&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can search by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transaction&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;Custom notes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want to find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every rent payment?&lt;/li&gt;
&lt;li&gt;Insurance premiums?&lt;/li&gt;
&lt;li&gt;Salary credits?&lt;/li&gt;
&lt;li&gt;Medical expenses for a specific year?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s all there.&lt;/p&gt;

&lt;p&gt;Which accidentally makes something else very easy…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taxes Become Boring (In a Good Way)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When salary credits, rent payments, insurance premiums, and medical expenses are already:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Categorized&lt;/li&gt;
&lt;li&gt;Tagged&lt;/li&gt;
&lt;li&gt;Searchable&lt;/li&gt;
&lt;li&gt;Documented&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tax calculation stops being painful.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No guesswork.&lt;/li&gt;
&lt;li&gt;No “I think I paid this”.&lt;/li&gt;
&lt;li&gt;Just facts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why I Built This&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I didn’t want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Another dashboard&lt;/li&gt;
&lt;li&gt;Another chart&lt;/li&gt;
&lt;li&gt;Another app asking for my bank credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Control&lt;/li&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Clarity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built a system where money is data, but life is the story.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It Runs Where You Decide. Even On Your Machine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One more thing I cared deeply about: ownership.&lt;/p&gt;

&lt;p&gt;This app &lt;strong&gt;doesn’t need&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A SaaS account&lt;/li&gt;
&lt;li&gt;A cloud subscription&lt;/li&gt;
&lt;li&gt;Someone else’s server holding your financial history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can run the entire application on-prem.&lt;/p&gt;

&lt;p&gt;One docker-compose up&lt;br&gt;
And the diary lives on your machine.&lt;/p&gt;

&lt;p&gt;No bank data transmitted to a SaaS server.&lt;br&gt;
No third-party storage.&lt;br&gt;
No “we’ll take care of it”.&lt;/p&gt;

&lt;p&gt;Your bank statement stays exactly where it should — with you.&lt;/p&gt;

&lt;p&gt;For some people, this is a deployment option.&lt;br&gt;
For me, it was a non-negotiable design principle.&lt;/p&gt;

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

&lt;p&gt;Money data is deeply personal.&lt;/p&gt;

&lt;p&gt;If a system requires you to upload it to someone else’s infrastructure,&lt;br&gt;
it has already failed the trust test.&lt;/p&gt;

&lt;p&gt;This one doesn’t.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If You’re Building Side Projects…&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s the lesson I learned:&lt;/p&gt;

&lt;p&gt;The most interesting products aren’t about features.&lt;br&gt;
They’re about reframing a boring problem into something human.&lt;/p&gt;

&lt;p&gt;This one started as an expense tracker.&lt;br&gt;
It became a diary.&lt;/p&gt;

&lt;p&gt;And honestly —&lt;br&gt;
I don’t think I can go back.&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>personalfinance</category>
      <category>docker</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>Turning Financial Goals into Smart Mutual Fund Recommendations</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Mon, 20 Oct 2025 14:50:51 +0000</pubDate>
      <link>https://dev.to/emilp/turning-financial-goals-into-smart-mutual-fund-recommendations-18ig</link>
      <guid>https://dev.to/emilp/turning-financial-goals-into-smart-mutual-fund-recommendations-18ig</guid>
      <description>&lt;p&gt;Most of us set financial goals — buying a car, saving for our child’s education, or even achieving financial freedom early.&lt;br&gt;
But the hard part isn’t defining the goal.&lt;br&gt;
It’s figuring out how much to invest, for how long, and where to put that money.&lt;/p&gt;

&lt;p&gt;While building my expense-tracking and investment insight platform, I realized that most users weren’t just looking for expense analytics — they wanted guidance. They wanted a way to reach their goals confidently.&lt;/p&gt;

&lt;p&gt;So, I started building a new feature:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Goal-Based Investment Recommender&lt;/strong&gt;&lt;br&gt;
where users can enter their target financial goal, timeline, and risk preference — and get mutual fund suggestions tailored to help them reach that goal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Idea&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The concept is simple but powerful.&lt;/p&gt;

&lt;p&gt;Users provide:&lt;/p&gt;

&lt;p&gt;🎯 Target amount (e.g., ₹10,00,000)&lt;br&gt;
⏳ Time period (e.g., 5 years)&lt;br&gt;
💰 Current savings (optional)&lt;br&gt;
⚖️ Risk profile (Conservative / Balanced / Aggressive)&lt;/p&gt;

&lt;p&gt;Based on these inputs, the system calculates:&lt;/p&gt;

&lt;p&gt;The required monthly SIP (Systematic Investment Plan) to achieve the goal.&lt;br&gt;
The expected rate of return based on their risk preference.&lt;br&gt;
A list of mutual fund schemes that align with their goals and risk tolerance.&lt;/p&gt;

&lt;p&gt;In short — users move from “I want to save ₹10L in 5 years” to “Invest ₹12,500/month in these 3 mutual funds”.&lt;/p&gt;

&lt;p&gt;Once the SIP is calculated, I match it with mutual fund schemes based on:&lt;/p&gt;

&lt;p&gt;Fund category (Equity, Hybrid, Debt)&lt;br&gt;
Historical performance&lt;br&gt;
Risk level&lt;br&gt;
Consistency of returns (using rolling return data)&lt;/p&gt;

&lt;p&gt;This recommendation engine helps users focus on execution, not confusion.&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>showdev</category>
      <category>startup</category>
      <category>programming</category>
    </item>
    <item>
      <title>https://medium.com/@emilpradeep/implementing-single-sign-on-using-pac4j-f30909df1ef3</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Tue, 06 May 2025 18:12:54 +0000</pubDate>
      <link>https://dev.to/emilp/httpsmediumcomemilpradeepimplementing-single-sign-on-using-pac4j-f30909df1ef3-13hg</link>
      <guid>https://dev.to/emilp/httpsmediumcomemilpradeepimplementing-single-sign-on-using-pac4j-f30909df1ef3-13hg</guid>
      <description></description>
      <category>authentication</category>
      <category>java</category>
      <category>webdev</category>
      <category>security</category>
    </item>
    <item>
      <title>🚀 Built an 💰 Expense Tracker That Tracks Your Spending—Without Manual Entry! 🏦📊</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Sun, 16 Mar 2025 05:38:17 +0000</pubDate>
      <link>https://dev.to/emilp/built-an-expense-tracker-that-tracks-your-spending-without-manual-entry-5h2k</link>
      <guid>https://dev.to/emilp/built-an-expense-tracker-that-tracks-your-spending-without-manual-entry-5h2k</guid>
      <description>&lt;p&gt;Managing expenses is a tedious task, especially when you have to enter each transaction manually. I wanted to simplify this process, so I built Xpense Tracker, an application that automates expense tracking without requiring you to enter individual expenses. Instead, it works by analyzing your bank statements and intelligently categorizing your transactions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike traditional expense trackers where you manually add each transaction, Xpense Tracker lets you upload your bank statement in any format:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;.csv&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;.xlsx&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;.pdf&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;.delimited&lt;/em&gt; files&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%2Fnxl4106jzohfmu8u0i2l.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%2Fnxl4106jzohfmu8u0i2l.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once uploaded, the application parses your statement and then asks you to map the relevant data fields. For example, Xpense Tracker needs to track:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Transaction Date&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Transaction Description&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Credit Amount&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Withdrawal Amount&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;&lt;em&gt;closing Balance&lt;/em&gt;&lt;/li&gt;
&lt;/ol&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%2Fbltprk8z3n6pf8bzaayl.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%2Fbltprk8z3n6pf8bzaayl.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since every bank statement has a different format, the application ensures accuracy by letting you confirm which columns correspond to these fields. Once mapped, it saves the data into a database for easy access and analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart Tagging for Better Organization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A key feature of Xpense Tracker is its tagging system. Instead of manually categorizing each transaction, you can create tags and associate them with specific transaction descriptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Tagging Works:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You tag an expense (e.g., "Dining Out").&lt;/p&gt;

&lt;p&gt;The app asks you to define a keyword or phrase from the transaction description (e.g., "McDonald's").&lt;/p&gt;

&lt;p&gt;It automatically applies the same tag to all matching transactions.&lt;/p&gt;

&lt;p&gt;This way, every time a new statement is uploaded, any transaction with a matching description gets automatically categorized under the same tag. Over time, this makes expense tracking completely effortless.&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%2Fz16pmm8k6akax0uo1bcz.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%2Fz16pmm8k6akax0uo1bcz.png" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics &amp;amp; Insights&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once your expenses are saved, Xpense Tracker provides detailed analytics of your spending. Based on your tags and the credit/debit values, you can see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Monthly spending trends for each tag.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Comparison of expenses over different periods.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Breakdown of spending habits based on categories.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the biggest advantages is that once you tag transactions, similar transactions uploaded later will be automatically tagged. This ensures that the analytics remain accurate and help you track spending patterns with minimal effort.&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%2Fclgiimsesnh3xwn9evjw.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%2Fclgiimsesnh3xwn9evjw.png" alt=" " width="800" height="432"&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%2Fmhgabjxfvwgv39nwl4xf.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%2Fmhgabjxfvwgv39nwl4xf.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time Range Selector&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To make filtering and viewing expenses easier, Xpense Tracker includes a global time range selector. This feature allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Filter expenses for a specific period.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;View analytics based on the selected time range.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Compare spending trends across different months.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;With Xpense Tracker, you don't need to spend hours logging expenses or categorizing transactions manually. Instead, the application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Parses your bank statements in multiple formats.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Guides you in mapping required fields.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Auto-tags transactions for consistency.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Provides analytics to help you understand your spending habits.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Allows time-based filtering for better financial insights.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're tired of manually entering expenses, Xpense Tracker is built for you! It transforms the way you track spending, making personal finance management seamless and efficient.&lt;/p&gt;

&lt;p&gt;Would you try an expense tracker like this? Let me know your thoughts in the comments!&lt;/p&gt;

&lt;p&gt;Also should I make this open-source ??&lt;/p&gt;

&lt;p&gt;You can try demo here - &lt;a href="https://xpense-tracker-ui.onrender.com/login" rel="noopener noreferrer"&gt;https://xpense-tracker-ui.onrender.com/login&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>expense</category>
    </item>
    <item>
      <title>Building an expense tracking application from scratch</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Mon, 02 Dec 2024 14:25:59 +0000</pubDate>
      <link>https://dev.to/emilp/building-an-expense-tracking-application-from-scratch-31jl</link>
      <guid>https://dev.to/emilp/building-an-expense-tracking-application-from-scratch-31jl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Managing personal finances effectively is crucial in today’s fast-paced world. To address this need, I embarked on creating an expense-tracking application that combines the power of Spring Boot and ReactJS. This application not only helps track your spending but also provides beautiful insights into your expenditure through intuitive visuals and analytics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Build an Expense Tracker?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal finance management is a universal challenge.&lt;/li&gt;
&lt;li&gt;Existing tools often lack a user-friendly interface or meaningful insights.&lt;/li&gt;
&lt;li&gt;Building from scratch provides an opportunity to learn and customize solutions to real-world problems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Expense Logging:

&lt;ul&gt;
&lt;li&gt;Add and categorize expenses quickly.&lt;/li&gt;
&lt;li&gt;Attach notes for context.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Visual Insights:

&lt;ul&gt;
&lt;li&gt;Interactive charts and graphs for spending trends.&lt;/li&gt;
&lt;li&gt;Monthly, weekly, and daily expenditure breakdowns.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Analytics Dashboard: 

&lt;ul&gt;
&lt;li&gt;Highlight recurring expenses.&lt;/li&gt;
&lt;li&gt;Identify saving opportunities.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Customizable Categories:

&lt;ul&gt;
&lt;li&gt;Tailor categories to fit unique financial needs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;A Peek into what I'm building&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%2F8wfd6knn5q1jlexjzouu.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%2F8wfd6knn5q1jlexjzouu.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>Tournament Brackets for Android</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Sat, 23 Jul 2022 13:03:00 +0000</pubDate>
      <link>https://dev.to/emilp/tournament-brackets-for-android-h3o</link>
      <guid>https://dev.to/emilp/tournament-brackets-for-android-h3o</guid>
      <description>&lt;p&gt;When I was building an eSports application, I came across a problem - To display eSports matches in a Tournament bracket style. &lt;/p&gt;

&lt;p&gt;My first intuition was to search for a related library which would help me achieve the UI easily, but there was no open source libraries available at that time. I even tried for any paid library, but in vain. &lt;/p&gt;

&lt;p&gt;So finally I had to build the UI myself using recyclerview and viewPager. I had opensourced it so that it would be useful anyone. You can find the project here &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/emil-ep/TournamentBrackets"&gt;https://github.com/emil-ep/TournamentBrackets&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SSyzm0IV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul984s7ybe99o64vl4ob.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SSyzm0IV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ul984s7ybe99o64vl4ob.png" alt="Image description" width="620" height="968"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>android</category>
      <category>java</category>
      <category>ux</category>
    </item>
    <item>
      <title>All machine learning algorithms in one place</title>
      <dc:creator>Emil</dc:creator>
      <pubDate>Sun, 16 Jan 2022 05:12:44 +0000</pubDate>
      <link>https://dev.to/emilp/all-machine-learning-algorithms-in-one-place-c2j</link>
      <guid>https://dev.to/emilp/all-machine-learning-algorithms-in-one-place-c2j</guid>
      <description>&lt;p&gt;I've created a github repository with most popular machine learning algorithms implementation with the dataset used. Also have line by line explanation for the code used.&lt;/p&gt;

&lt;p&gt;find the repo here : &lt;a href="https://github.com/emil-ep/machine-learning-algo"&gt;github&lt;/a&gt;&lt;/p&gt;

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