System Design

Discover how FinSync’s system architecture empowers speed, scale, and stability.

System Architecture Diagram

System Architecture Diagram of the Project

1. Next.js Web App

  • Role: Front-end interface for user interaction.
  • Key Features:
    • Provides pages for user interaction: Dashboard, Settings, Upload, and Login/Sign-Up.
    • Handles user authentication via Microsoft Authentication Library (MSAL).
    • Passes user inputs (e.g., graph type, uploaded files) to Azure Functions for processing.
    • Displays processed data and graphs retrieved from Azure Data Explorer.

2. Azure Blob Storage

  • Role: Scalable storage solution for uploaded files and generated spreadsheets.
  • Key Features:
    • Stores files uploaded by users through the Upload Page.
    • Acts as a trigger for the Excel Processing Function when a new file is uploaded.
    • Stores processed spreadsheets generated by the Excel Processing Function.

3. Azure Functions

  • Role: Serverless compute capabilities to process data and handle API requests.
  • Key Features:
    • Graph API Endpoint: Queries Azure Data Explorer to retrieve data for graphs and key metrics.
    • Excel Processing Function: Processes uploaded Excel files and saves the results back to Azure Blob Storage. (more explanations in the backend section)
    • Query Function: Handles Natural Language queries and passes them to the LangChain Agent along with the summary spreadsheet generated by the Excel Processing Function.

4. Azure Data Explorer

  • Role: Queryable data source for visualizing and analyzing data.
  • Key Features:
    • Stores processed data from Excel files for querying and visualization.
    • Provides data to the Graph API Endpoint for building graphs and key metrics.
    • Enables efficient querying of large datasets for real-time insights.

Data Processing Flow

The data processing flow in our system is as follows:

  1. The user uploads an Excel file through the Next.js Web App.
  2. The uploaded file is stored in Azure Blob Storage.
  3. This triggers the BlobTriggerFunction in Azure Functions.
  4. The BlobTriggerFunction processes the Excel file, extracting relevant data and generating a summary spreadsheet.
  5. The processed data is then stored in Azure Data Explorer for querying and visualization.
  6. The user can query the data using natural language through the Query Function, which interacts with the LangChain Agent.