System Design
Discover how FinSync’s system architecture empowers speed, scale, and stability.
System Architecture Diagram
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:
- The user uploads an Excel file through the Next.js Web App.
- The uploaded file is stored in Azure Blob Storage.
- This triggers the BlobTriggerFunction in Azure Functions.
- The BlobTriggerFunction processes the Excel file, extracting relevant data and generating a summary spreadsheet.
- The processed data is then stored in Azure Data Explorer for querying and visualization.
- The user can query the data using natural language through the Query Function, which interacts with the LangChain Agent.