FinTrackWebApi

A Comprehensive Financial Management RESTful API

.NET Badge ASP.NET Core Badge Entity Framework Badge AI Badge

About the Project

FinTrackWebApi is a robust financial management system that provides comprehensive tools for personal and business financial tracking. Built with ASP.NET Core, it offers a secure and scalable solution for managing finances with modern features and AI integration.

Key Features

  • Comprehensive expense tracking with detailed analytics
  • Income and expense management with real-time updates
  • Smart budget planning and recommendations
  • Multi-account management and transaction tracking
  • AI-powered chatbot for financial assistance
  • Secure lending and borrowing system
  • Advanced financial reporting and analytics
  • Customizable notifications and alerts
  • Role-based access control and security
  • Real-time data synchronization

Technologies Used

  • ASP.NET Core 7.0+
  • Entity Framework Core
  • PostgreSQL
  • Redis Cache
  • JWT Authentication
  • SignalR for Real-time Updates
  • C# Programming Language

API Endpoints


# Authentication
POST /api/auth/login
POST /api/auth/register
POST /api/auth/refresh-token

# Financial Management
GET    /api/transactions
POST   /api/transactions
PUT    /api/transactions/{id}
DELETE /api/transactions/{id}

# Budget Management
GET    /api/budgets
POST   /api/budgets
PUT    /api/budgets/{id}
DELETE /api/budgets/{id}

# Account Management
GET    /api/accounts
POST   /api/accounts
PUT    /api/accounts/{id}
DELETE /api/accounts/{id}

# AI Chatbot
POST   /api/chatbot/query
GET    /api/chatbot/history

# Lending System
GET    /api/loans
POST   /api/loans
PUT    /api/loans/{id}
DELETE /api/loans/{id}
                        

Database Schema


-- Core Tables
CREATE TABLE Users (
    Id INT PRIMARY KEY,
    Username NVARCHAR(50),
    Email NVARCHAR(100),
    PasswordHash NVARCHAR(MAX),
    CreatedAt DATETIME
);

CREATE TABLE Accounts (
    Id INT PRIMARY KEY,
    UserId INT,
    Name NVARCHAR(50),
    Balance DECIMAL(18,2),
    Currency NVARCHAR(3),
    CreatedAt DATETIME
);

CREATE TABLE Transactions (
    Id INT PRIMARY KEY,
    AccountId INT,
    Amount DECIMAL(18,2),
    Type NVARCHAR(20),
    Category NVARCHAR(50),
    Description NVARCHAR(MAX),
    Date DATETIME
);

CREATE TABLE Budgets (
    Id INT PRIMARY KEY,
    UserId INT,
    Category NVARCHAR(50),
    Amount DECIMAL(18,2),
    Period NVARCHAR(20),
    StartDate DATETIME,
    EndDate DATETIME
);

CREATE TABLE Loans (
    Id INT PRIMARY KEY,
    LenderId INT,
    BorrowerId INT,
    Amount DECIMAL(18,2),
    InterestRate DECIMAL(5,2),
    Status NVARCHAR(20),
    DueDate DATETIME
);
                        

Security Features

  • JWT-based authentication with refresh tokens
  • Role-based access control (RBAC)
  • Data encryption at rest and in transit
  • Input validation and sanitization
  • Audit logging for all operations
  • Rate limiting and request throttling