Inspiration

The idea for this project was born from my challenges in managing the finances effectively. With multiple accounts, transactions, and financial goals, keeping track of where the money is going becomes difficult. The desire to create a single, user-friendly solution that could provide clarity and control over personal finances inspired the development of this application.

What it does

The Personal Finance Tracker is a comprehensive tool that simplifies personal financial management. Here’s what it offers:

  1. Track Income and Expenses:

    • Automatically categorizes transactions into income and expenses, providing users with a clear picture of their financial activity.
  2. Integration with Plaid:

    • Securely connects to bank accounts and credit cards via Plaid to fetch real-time transaction data.
    • Eliminates the need for manual data entry by syncing financial accounts seamlessly.
  3. Financial Insights:

    • Generates detailed insights into spending patterns, income sources, and saving opportunities.
    • Provides visual analytics like charts and graphs to make financial data easier to understand.
  4. Customizable Reports:

    • Enables users to generate reports for specific timeframes to analyze their income, expenses, and savings over time.
  5. Real-Time Updates:

    • Keeps data synced in real-time, ensuring users always have access to the most up-to-date information.
  6. User-Friendly Dashboard:

    • Features an intuitive, responsive interface where users can manage all their accounts and financial data in one place.
  7. B2C Integration:

    • Integrates with Azure AD B2C to provide secure and seamless user authentication and management. This integration ensures that the application is scalable, secure, and easy to use for both new and returning users.
  8. Data Privacy and Security:

    • Implements robust security measures, including encryption at rest, to protect sensitive user data.

The Personal Finance Tracker empowers users to take control of their finances by providing a simple, secure, and effective solution for managing their money.

How we built it

The Personal Finance Tracker was developed using modern web development technologies and tools, ensuring a robust, scalable, and user-friendly application. Here's an overview of the tools, frameworks, and technologies we used:


Frontend: Razor View and JavaScript

  • Razor View:
    Used Razor View Engine to create dynamic, server-side rendered HTML pages for a responsive and seamless user experience.
  • JavaScript:
    Added interactivity and client-side logic using JavaScript to handle dynamic elements and improve user experience.

Backend: ASP.NET Core

  • Built the application’s backend using ASP.NET Core, a cross-platform framework for high-performance, secure web applications.
  • Implemented APIs to handle user authentication, financial data processing, and communication with third-party services like Plaid.

Database: Microsoft SQL Server

  • Used MS SQL Server as the database to securely store user data, transaction records, income, and expenses.
  • Designed normalized tables to efficiently manage financial and user information.

Integration: Plaid API

  • Integrated with Plaid to securely fetch real-time bank account and transaction data.
  • Enabled users to connect their financial accounts, automating income and expense tracking.

Authentication: Azure AD B2C

  • Incorporated Azure Active Directory B2C for secure user authentication and management.
  • Supported multiple login options, including email and social media accounts, while ensuring compliance with security standards.

ORM: Entity Framework Core

  • Used Entity Framework Core for database interactions, enabling object-relational mapping and LINQ queries for efficient data management.
  • Simplified database migrations and schema updates with built-in migration tools.

Challenges we ran into

1. Security and Privacy

  • Challenge: Handling sensitive user data (e.g., financial transactions) while adhering to strict security and privacy standards.
  • Solution: We used:
    • Encryption at rest for the sensitive data.
    • OAuth2 for secure authentication.

2. AAD B2C Integration

  • Challenge: Configuring Azure AD B2C to support social login options while maintaining a secure authentication flow.
  • Solution: I followed best practices for identity and access management and customized the user flows to provide a seamless sign-up and sign-in experience.

3. Plaid Integration

  • Challenge: Understanding and implementing Plaid’s API for fetching and categorizing user transaction data.
  • Solution: I spent time studying the documentation and handling edge cases like failed connections or unsupported banks. Iterative testing was crucial to ensure a smooth user experience. ---

Accomplishments that we're proud of

Throughout the development of the Personal Finance Tracker, I achieved several milestones that I'm incredibly proud of. These accomplishments reflect my dedication to delivering a secure, user-friendly, and impactful application:


1. Seamless Plaid Integration

  • Successfully integrated the Plaid API, enabling users to securely connect their bank accounts and retrieve real-time transaction data without manual input.
  • Implemented robust error handling for a smooth user experience.

2. Azure AD B2C Integration

  • Configured and deployed Azure AD B2C to provide secure, scalable, and customizable authentication for all users.
  • Supported multiple login options, including social accounts like Google and Microsoft, while ensuring seamless user flows.

3. Comprehensive Financial Insights

  • Developed algorithms to categorize and analyze financial data, providing users with clear insights into their spending patterns and savings opportunities.
  • Visualized data through interactive charts and dashboards for an intuitive user experience.

4. Security and Privacy Compliance

  • Ensured that all user data (PII) is handled with encryption at rest and compliance with industry security standards.
  • Protected sensitive financial information using secure authentication (OAuth2) and database encryption techniques.

7. User-Friendly Design

  • Delivered an intuitive and visually appealing user interface with Razor Views and JavaScript, ensuring a smooth and engaging experience for users.
  • Simplified financial management for users with clear navigation, easy-to-use tools, and actionable insights.

8. Overcoming Technical Challenges

  • Resolved complex issues like Plaid API webhooks, data categorization, and real-time updates, enhancing our technical expertise and problem-solving skills.
  • Optimized database operations with Entity Framework Core, ensuring reliable and efficient data handling.

What we learned

The development of the Personal Finance Tracker was a journey of exploration, problem-solving, and growth. The importance of secure financial integration, Categorization and analysis of financial data, Database encryption.

What's next for Personal Finance Tracker

1. AI-Powered Recommendation Engine

  • Objective: To provide personalized financial advice based on user data and spending habits.
  • How It Works:
    • Analyze income, expenses, and savings patterns using AI and machine learning algorithms.
    • Offer tailored recommendations such as:
    • Budget adjustments to maximize savings.
    • Notifications about overspending in specific categories.
    • Suggestions for investment opportunities or better financial products (e.g., credit cards with lower interest rates).
    • Predictive insights for upcoming expenses based on historical data.
  • Impact: Empower users to make smarter financial decisions with actionable, data-driven advice.

2. Goal-Based Financial Planning

  • Allow users to set specific financial goals (e.g., saving for a vacation, paying off debt) and track progress in real-time.
  • Provide automated suggestions to help users stay on track and achieve their goals faster.

3. Mobile App Development

  • Launch a dedicated mobile application for on-the-go access to financial tracking and insights.
  • Include push notifications for real-time updates and reminders.

Share this project:

Updates