FinTrack Platform

A Next-Generation Financial Management Platform with a Microservices Architecture

.NET 8 Badge ASP.NET Core Badge Python Badge Docker Badge PostgreSQL Badge Stripe Badge

About the Project

FinTrack is a comprehensive Software as a Service (SaaS) platform designed to empower users with full control over their financial lives. Built on a modern **microservices architecture**, the system features a core .NET 8 API for business logic, a Python/FastAPI service for AI operations, and a complete DevOps stack for monitoring and deployment. It offers a secure, scalable, and feature-rich foundation for next-generation financial applications.

Key Features

  • Robust User Management with a two-step OTP verification
  • Centralized management of multiple financial accounts (bank, cash, etc.)
  • Strategic Budget Management with dynamic category support
  • Detailed Income/Expense Transaction Tracking
  • Multi-Format Reporting (PDF, Excel, Word, XML, Markdown)
  • Secure Debt System (GBS) with Video Verification & AES Encryption
  • AI-Powered Financial Assistant (FinBot) with Ollama & Mistral 7B
  • Subscription & Payment Management via Stripe Integration
  • Real-time System Monitoring with Prometheus & Grafana
  • Granular Role-Based Access Control (RBAC)

Technologies Used

  • Backend: .NET 8 (ASP.NET Core), Python 3.10 (FastAPI)
  • **Database:** PostgreSQL, Entity Framework Core 8
  • DevOps: Docker, Docker Compose
  • Monitoring: Prometheus, Grafana, cAdvisor
  • Authentication: JWT (JSON Web Tokens), ASP.NET Core Identity
  • AI/ML: Ollama, Mistral 7B Language Model
  • Payments: Stripe SDK & Webhooks
  • Languages: C# 12, Python 3.10

API Endpoints Showcase


# User Authentication (OTP & JWT)
POST /UserAuth/initiate-registration
POST /UserAuth/verify-otp-and-register
POST /UserAuth/login

# User Profile Data Hub
GET /User

# Core Financial Management
GET    /Accounts
POST   /Transactions
GET    /Budgets

# Secure Debt System (GBS)
POST   /Debt/create-debt-offer
POST   /Debt/respond-to-offer/{debtId}
POST   /Videos/user-upload-video
GET    /Videos/video-metadata-stream/{videoId}?key=...

# AI Chat Service (Proxy to Python)
POST   /Chat/send

# Reporting & Subscriptions
POST   /Reports/generate
POST   /Membership/create-checkout-session
POST   /api/stripe/webhook
                        

Database Architecture Snippet


-- Simplified schema using PostgreSQL syntax
-- NOTE: The system uses a dual-database strategy:
-- 1. MainDB: For application data.
-- 2. LogDB: For auditing all data modifications.

CREATE TABLE "AppUser" (
    "Id" TEXT PRIMARY KEY,
    "UserName" TEXT,
    "Email" TEXT
);

CREATE TABLE "Accounts" (
    "Id" SERIAL PRIMARY KEY,
    "UserId" TEXT REFERENCES "AppUser"("Id"),
    "AccountName" TEXT NOT NULL,
    "Balance" DECIMAL(18,2) DEFAULT 0.0,
    "Currency" TEXT NOT NULL
);

CREATE TABLE "Transactions" (
    "Id" SERIAL PRIMARY KEY,
    "AccountId" INT REFERENCES "Accounts"("Id"),
    "Amount" DECIMAL(18,2) NOT NULL,
    "TransactionDateUtc" TIMESTAMPTZ NOT NULL
);

CREATE TABLE "Debts" (
    "Id" SERIAL PRIMARY KEY,
    "LenderId" TEXT REFERENCES "AppUser"("Id"),
    "BorrowerId" TEXT REFERENCES "AppUser"("Id"),
    "Amount" DECIMAL(18,2) NOT NULL,
    "Status" TEXT NOT NULL,
    "DueDateUtc" TIMESTAMPTZ NOT NULL
);

CREATE TABLE "VideoMetadatas" (
    "Id" SERIAL PRIMARY KEY,
    "DebtId" INT REFERENCES "Debts"("Id"),
    "EncryptedFilePath" TEXT,
    "EncryptionKeyHash" TEXT, -- Key is never stored, only its hash
    "Status" TEXT NOT NULL
);
                        

Security Features

  • JWT-based Authentication with a secure OTP Email Verification flow
  • Robust Role-Based Access Control (User, Admin, VideoApproval)
  • AES Encryption for sensitive GBS video evidence
  • Secure Webhook Handling for Stripe payments with signature verification
  • Comprehensive Audit Logging for all CUD operations into a separate database
  • Path Traversal protection for file access endpoints