SaaS based multi-tenant
data visualization platform.

  • Industry: EdTech
  • Country: USA
image

Trion SaaS is built on a multi-tenant architecture framework, allowing a single software application instance to serve multiple tenants efficiently. Each tenant’s data is fully isolated and secure, ensuring that information remains private and inaccessible to other tenants. In our implementation, this architecture assigns a dedicated Azure SQL database to each client, enhancing data security through segregation and enabling tailored optimizations to meet the specific needs of each tenant.

The core challenges

  • Tenant identification: Implement a mechanism to identify the tenant based on the user's login using KeyCloak.
  • Database provisioning: Automate the provisioning of Azure SQL databases for new clients as part of the onboarding process. This includes setting up the database schema, roles, and initial configurations specific to each tenant.
  • Connection management: Develop a dynamic database connection management system that manages connections to the appropriate tenant database based on the tenant identification process.
  • Scalability: Design the infrastructure to be scalable, enabling seamless resource expansion for individual tenant databases as their usage increases.
  • Data isolation and integrity: Ensure strict data isolation for each tenant, preventing any possibility of cross-tenant access.

Solution We’ve created a platform that allows multiple tenants—whether they’re customers or organizations—to securely share the same system while keeping their data completely separate and protected.

  • icon
    Multi-Tenant architecture: Tenancy is implemented using a database-per-tenant strategy, ensuring enhanced security and data isolation. Each tenant's data is stored in a dedicated Azure SQL database.
  • icon
    Single Page Application (SPA): React was chosen to build a fast, responsive, component-based, and modular SPA. Each tenant is provided with a customized user interface tailored to their specific preferences and needs.
  • icon
    API integration: React communicates with the .NET Core Web API to fetch tenant-specific data, utilizing HTTP requests (Axios, Fetch API).
  • icon
    Real-Time data processing: Capable of processing and visualizing data in real time, enabling users to monitor key metrics and respond quickly to changes.
  • icon
    Entity framework core (EF Core): Used as the ORM to manage tenant data. EF Core’s database per tenant strategy helps in managing migrations and schema versions independently for each tenant.
  • icon
    Caching and Queuing: Azure Redis Cache was used to speed up repetitive data queries. Azure Service Bus was used for background tasks and communication between services.

Features.
Some essential functionality.

We've developed a wide range of features to enhance the application, and below are some of the key functionalities:

  • User authentication and role-based access control.
  • Real-time communication between the frontend and backend.
  • High availability and scalability.
  • Cost-effective Azure services.
  • Automated deployment via Azure DevOps.
found

Enhancement.
By adding useful features.

To elevate the application and enhance the user experience, we've incorporated a range of features that empower users to interact securely with their data.

image
Advanced data grid

Developed an advanced data grid component for displaying and managing large datasets, offering features like editable cells, sorting, filtering, customizable columns, data export/import, pagination, and virtual scrolling for dynamic user interaction and extensive customization.

image
Document management system

A centralized, secure, and efficient solution for tenants to store, organize, and manage their documents, ensuring each tenant has a tailored space without compromising data privacy or security.

image
KeyCloak authentication

We integrated Keycloak to handle authentication and authorization, creating distinct realms for each tenant. This provided isolated user management, tailored role-based access control, and customizable authentication flows to meet each tenant’s specific needs securely and seamlessly.

image
Azure subscription management

Upon signing up, each tenant receives their own Azure subscription with detailed cost tracking and management. This allows for accurate billing and resource optimization, ensuring tenants are only charged for the resources they use.

Customization.
How we played with records?

We go beyond simply displaying records; we have designed a wide range of options that allow users to interact with data, enabling more informed decision-making.

SQL Server for relational data

Each tenant is provided with a dedicated SQL database for storing structured data, such as customer details, orders, and product information, ensuring complete data segregation and enhanced security.

image
Role-Based Access Control (RBAC)

Each tenant is configured with distinct roles, such as Admin, Manager, and User, with access to different parts of the application controlled by role-based permissions.

image
Editable cells

Developed a feature that allows users to modify, update, and interact with data directly within the application at runtime, without needing to refresh or reload the page.

found
Advanced filters

The application is equipped with advanced filters that allow users to efficiently sort, search, and refine large datasets to quickly find specific information.

image
Import & Export

Using sample templates, users can efficiently import large datasets and export selected records in various formats such as CSV, PDF, or Excel.

found
Customizable columns

Users can effortlessly select which columns to display, creating a personalized view that highlights the most relevant data and ensures the information shown aligns with their specific needs.

image

Explore more.
Additional features.

icon

Log management. The system captures logs of user actions in real time, providing comprehensive tracking, monitoring, and analysis of activities within the application.

icon

D3 Calendar chart. Integrated a D3 calendar chart to visualize time-based data on a calendar grid, with each cell representing a day of the year. The chart maps performance metrics to color intensities, allowing for clear representation of daily activity.

icon

Frontend tenant customization. For a customized UI, tenant-specific configurations (such as themes and feature toggles) are fetched from Azure SQL Database or stored in a central repository.

icon

User management. Each tenant can create their own team within the application, manage roles and permissions, and track team activities.

The outcome.
What we have achieved.

  • High availability & scalability: The application is able to scale efficiently with minimal downtime due to Azure's robust cloud infrastructure and auto-scaling capabilities.
  • Improved user experience: Tenants enjoyed a tailored user experience without performance issues, as data was fetched and managed efficiently using Azure SQL Server.
  • Cost efficiency: Using shared resources like Azure SQL Elastic Pools and Azure SQL Server, the application kept costs under control while maintaining a high degree of data isolation and customization.
  • Rapid development and deployment: With Azure DevOps, new features and bug fixes were deployed seamlessly through automated pipelines, ensuring rapid iterations and high-quality code.

Looking to build similar
solution for your business?

We have all the required expertise to help your business grow

Learn more about software outsourcing
#imenso

Think Big

Rated 4.7 out of 5 based on 32 Google reviews.