Skip to main content
September 25, 2024 .Net

SAAS-Based Multi-Location Tanning Salon Software

Enterprise Multi-Location SaaS Architecture: A Technical Showcase of Next Olive Tanning Salon Software Platform

Project Overview & Scope

We developed a multi-tenant SaaS tanning salon software platform to modernize legacy operations across multiple business locations. The project involved replacing fragmented desktop environments with a centralized, browser-based solution that unifies point-of-sale systems, automated timer hardware, marketing pipelines, and client data synchronization.

The legacy operational environment inherited by our development team was highly fragmented. Individual salon locations operated as isolated digital islands, using disparate desktop programs that relied on localized SQL database instances. These decentralized configurations lacked automated data replication, which led to widespread problems, including mismatched inventory logs, disconnected membership data, and a lack of real-time visibility for business owners. Customer profiles created at one branch were completely inaccessible at another, preventing seamless multi-location visits. Furthermore, backend operations required manual data aggregation, which increased administrative overhead and data entry errors. The software architecture needed a complete overhaul to support modern SaaS capabilities, multi-location fluidity, and centralized data access.

Our primary objective was to build a highly customizable, enterprise-grade, n-tier web application capable of centralizing multi-salon management into a single administrative portal. This required the design of a robust system capable of handling complex operational areas, including point-of-sale workflows, Electronic Funds Transfer processing, multi-tiered membership subscriptions, shift management, product and inventory control, coupon evaluation, and automated hardware control for tanning beds. The platform had to be tailored to the exact specifications of salon owners, meaning the user interface needed to be intuitive for front-desk staff while providing deep analytical and configuration tools for corporate managers. The scope of work extended from the initial database migration out of legacy formats to the setup of automated communication gateways, hardware interfaces, and secure cloud deployment architectures.

System Architecture & Deployed Features

Our architecture group constructed an n-tier system structure running containerized environments to handle heavy user traffic and real-time hardware status updates. We implemented separate client databases, multi-location data replication rules, and isolated presentation layers to guarantee zero cross-tenant data leaks and reliable performance.

The application architecture follows a decoupled, multi-tier methodology designed to separate user interface elements, backend business rules, and database records. The presentation layer is built on a responsive single-page application framework that communicates with the backend processing layer through structured application programming interfaces. The backend application layer handles all business rules, access verification, and integration routing, ensuring that no client terminal interacts directly with the storage databases. The data tier utilizes a multi-tenant database-per-client model, which ensures physical separation of sensitive salon data. This architectural setup eliminates the common performance bottlenecks associated with shared single-database models, allowing individual database instances to scale based on specific client usage patterns. To maintain this architecture across cloud environments, our team packed all software layers into Docker containers, which are coordinated through a centralized Kubernetes cluster to provide automatic scaling, load balance handling, and isolated environment execution.

Automated Bed Management and T-Max Timer Integration

We integrated the T-Max Timer hardware API directly into our salon management dashboard using localized communication protocols and automated polling scripts. This setup allows front-desk staff to control tanning beds, monitor session durations, and track bulb hours automatically from the centralized application interface.

The bed management component handles real-time coordination with physical T-Max timer devices distributed across multiple salon rooms. Because these hardware units run on localized serial or network communication protocols, we developed a local interface service that bridges the physical devices with our cloud environment. This interface captures low-level hardware alerts and formats them into standardized data messages. The front-end application layer uses asynchronous JavaScript calls to frequently query this gateway, enabling real-time visual tracking of each tanning bed directly on the front-desk dashboard.

The software tracks multiple operational states for each bed, such as idle, warming up, active session, and cooling down. When a customer checks in, the system verifies their active membership tier, cross-checks their account against session safety limits, and automatically sends an activation signal to the corresponding bed timer. Beyond basic session controls, the system features a comprehensive maintenance tracker that monitors cumulative bulb usage hours. Every active session adds to the bulb running logs within the database. When a bed reaches a pre-configured operational hour threshold, the system displays an automated hardware warning to administrators and creates a pending maintenance ticket in the inventory system, helping ensure that salon owners replace bulbs before light output drops.

Multi-Location Data Synchronization and Replication Framework

We built a custom data replication framework using MySQL replication loops and automated migration scripts to synchronize multi-salon databases with the main system. This setup keeps inventory, membership statuses, and financial transactions updated across all physical nodes while maintaining offline capabilities during network drops.

To accommodate multi-location business operations without risking data overlap or performance lag, we deployed a distributed database framework. Each salon enterprise receives its own isolated database instance, and individual physical locations within that enterprise connect through dedicated replication loops. When data is modified at a single location, such as a customer updating their contact details or purchasing a product package, the transaction is captured by a localized data layer and immediately sent to the primary cloud MySQL cluster. The cloud hub then runs replication processes to push these updates to all other connected branch databases within that salon network.

To manage historical records during initial onboarding, we developed robust data migration utilities. These utilities convert historical database tables into modern web-ready schemas, mapping relational structures, verifying field types, and retaining transaction lineages. We used custom scripts to automate data parsing, converting text values, updating date-time fields, and verifying relational keys. If a location loses its internet connection, the system utilizes local web storage capacities to cache operational logs and sales transactions. When the network connection returns, our custom reconciliation scripts analyze the queued entries, compare timestamps to prevent data overwrite loops, and merge the localized updates back into the master MySQL database without causing service interruptions.

Multi-Tenant Membership and Point-of-Sale Engine

Our developers created a point-of-sale and membership management system featuring Electronic Funds Transfer billing and Authorize.Net integration. This component safely handles recurring membership renewals, tracks employee shifts, manages product inventory levels, and processes customer gift cards or coupons securely.

The point-of-sale engine unifies salon retail workflows, recurring revenue subscriptions, and personnel tracking into a single processing hub. Membership management relies on a recurring billing scheduler that handles Electronic Funds Transfer runs, automatically executing subscription updates and parsing batch payment logs through the Authorize.Net gateway. The gateway integration uses secure tokenized transaction flows, meaning sensitive credit card details are passed straight to the payment gateway provider, removing raw card numbers from our database storage to maintain high security standards compliance.

+------------------+       +----------------------+       +-------------------+
|  AngularJS UI    | ----> |   PHP Backend API    | ----> |  Authorize.Net    |
| (Customer Check) |       | (Token Registration) |       | (Payment Gateway) |
+------------------+       +----------------------+       +-------------------+

The system includes a detailed shift management utility that coordinates employee actions with active terminal access. Staff must clock into the software to unlock cash drawers or run client sales, which allows the system to generate detailed auditing paths for every transaction. Product management functions operate alongside a multi-warehouse inventory engine that automatically lowers stock counts as items are sold, tracks minimum safety stock values, and generates automated purchase orders when items run low. Coupon evaluation is handled by an internal business logic script that processes expiration parameters, checks product-specific exclusions, prevents stacking of unauthorized discounts, and verifies membership levels before modifying order totals at checkout.

Comprehensive Technology Stack

We deployed a modern infrastructure combining classic core frameworks with advanced cloud orchestration tools to maximize system reliability and speed. The environment utilizes AngularJS for the front-end interface, PHP for back-end computing, and Docker containers managed via Kubernetes for scalable operations.

The system configuration combines reliable development tools with modern infrastructure-as-code deployment platforms. This ensures the environment remains consistent across development, testing, and multi-tenant production phases. The table below outlines the core layout components and operational layers utilized across this architecture.

Operational LayerTechnologies and Frameworks UsedDeployed Configuration / Role
Front-End PresentationAngularJS, HTML, CSS, Bootstrap, jQuery, AJAXRenders the single-page interface, handles layout fluidity across screens, manages async API communications, and coordinates user input states.
Front-End UtilitiesAngular Masking, TinyMCE, Multi-select, Date-Time PickerStandardizes form data entry formats, provides rich-text editors for outbound newsletter designs, and manages calendar inputs for salon bookings.
Back-End ProcessingPHPExecutes business rules, processes routing requests, validates application security parameters, and handles core gateway integrations.
Database & StorageMySQL, SQLImplements a database-per-tenant architecture, runs custom data synchronization processes, and manages internal relational data storage.
ContainerizationDockerBundles application runtimes, code blocks, system utilities, and environmental settings into isolated, reproducible software containers.
Orchestration & CloudKubernetes, AWS, AzureManages container execution patterns, automates horizontal cluster scaling, balances application traffic, and handles cluster failover across regions.
Infrastructure as CodeTerraformDeclares and deploys cloud networking paths, storage volumes, access control layers, and computing clusters via configuration files.
Identity & SecurityOkta, Google OAuth2, PHPMailerControls developer login validation, implements secure user authentication pathways, and enables safe email delivery without plaintext credentials.
Threat MonitoringCrowdStrikeMonitors running system containers, performs automated behavioral threat analysis, and isolates endpoints if security anomalies are detected.
External IntegrationsProStyleText API, Mailchimp API, Authorize.NetExecutes outbound marketing text blasts, synchronizes contact lists for customer newsletters, and tokenizes credit card transactions.
Development LifecycleGitHub, Plan.ioTracks code version changes, hosts development branch code, manages agile sprint boards, and tracks routine development issues.

Compliance, Security, & Operational Standards

We incorporated high-level data protection protocols into the core system structure to satisfy strict security benchmarks like SOC 2 and GDPR. The platform uses strong database isolation models, tokenized payment pathways, and endpoint security monitors to protect customer profiles and transactional data.

The platform security framework relies on a zero-trust model across all layers of the cloud infrastructure. Identity checking is managed centrally through Okta integration, ensuring that corporate users, developers, and platform administrators must complete multi-factor validation before accessing infrastructure controls. For transaction communication and system alerts, we built an authenticated email transmission engine by combining Google OAuth2 with the PHPMailer library. This configuration allows the application to interact directly with secure mail relays using temporary access tokens, eliminating the need to store raw, plaintext account names and passwords within server configuration files where they could be exposed during an unexpected storage breach.

To protect the server environment from runtime exploits, we installed CrowdStrike Falcon agents across all nodes within our cloud clusters. These agents provide continuous telemetry, behavior-based threat analytics, and automated vulnerability tracking, allowing us to find and isolate software weaknesses before they can be leveraged by malicious actors.

Data isolation is enforced strictly at the database layer by deploying individual MySQL schemas for each tenant’s business. This setup completely removes the risk of cross-tenant data leaks caused by poorly constructed application queries, as each database instance operates with its own access credentials and separated physical volumes.

All communications passing between client browsers and the cloud platform are encrypted using Transport Layer Security protocol 1.3, while data stored within the database tables, including customer names, phone logs, and addresses, is encrypted at rest using AES-256-bit algorithms. This detailed security approach provides a compliant framework that satisfies strict international guidelines for corporate data management and customer privacy protection.

Technical Capabilities & Operational Framework

Our operational plan uses automated Terraform templates and Kubernetes self-healing routines to manage load spikes and hardware failures without service interruptions. Continuous logging, background workers for text or email campaigns, and automated database backups provide constant infrastructure stability.

To minimize manual server tasks and ensure identical deployments across environments, our infrastructure team created a library of declarative Terraform files. These configuration scripts define the complete server layout, including virtual network dividers, subnet partitions, security gateway filters, load balancers, and container orchestration clusters. When a new multi-location salon business joins the platform, the infrastructure is automatically created by executing these pre-tested code templates, reducing human setup error and completing complex cluster environments in minutes. The production containers run inside a Kubernetes cluster configured with horizontal auto-scaling rules, which monitor processor consumption and memory allocation to automatically launch additional application pods during peak daytime business hours.

+-------------------------+
|   Terraform Templates   |
+-------------------------+
             |
             v
+-------------------------+
|  Kubernetes Cluster     |
|  [Pod 1]  [Pod 2] ...   |
+-------------------------+
   ^                 ^
   | (Auto-scales)   | (Self-heals)
+-------------------------+
| AWS/Azure Cloud Compute |
+-------------------------+

Our developers addressed the performance overhead of outbound marketing campaigns by building an asynchronous queue processing system. When a salon manager schedules a mass text communication through the ProStyleText API or pushes a newsletter runout to Mailchimp, the application layer does not execute these commands in real time on the main user thread. Instead, the tasks are written to an intermediate database queue buffer. Independent background workers pick up these items sequentially, regulating outbound API requests to match third-party throttling rules. This architecture ensures that large-scale marketing actions do not slow down localized point-of-sale activities or disrupt real-time communication with T-Max tanning bed timers.

The system also runs automated maintenance cron jobs during low-traffic overnight windows to execute routine schema migrations, clear temporary log caches, and compile compressed, encrypted database snapshots to off-site backup storage locations.

Leveraging Next Olive Technical Expertise for Complex Infrastructures

We provide comprehensive development capabilities designed to eliminate technical debt and build secure cloud architectures for modern enterprises. Our development team combines advanced platform design with agile methodologies to transform complex business needs into resilient, high-density applications.

The development journey for this multi-location tanning salon software platform showcases our ability to solve challenging architectural problems and build reliable SaaS platforms. Throughout the product creation cycle, our development group followed a strict Software Development Life Cycle strategy, managing tasks through the Plan.io management portal. By separating development goals into weekly sprint allocations and holding daily standup synchronization meetings, we quickly identified design obstacles, verified technical progress, and adapted to evolving operational demands. Code management was handled through GitHub, using strict branch permissions, peer pull request reviews, and automated integration pipelines to verify that every patch met our quality and security standards before deployment.

Our capability extends far beyond basic code development. We specialize in transforming outdated software setups into modern cloud-native systems, removing deep-seated technical debt, and building architectures designed to scale seamlessly as client portfolios expand. We construct zero-trust networks, design secure database separation frameworks, and build fast, reliable hardware-to-cloud integration pathways that keep business environments running smoothly.

If your organization is struggling with distributed data synchronization problems, brittle legacy hardware integrations, or scaling blockages within a multi-tenant ecosystem, our architecture team is ready to help. Contact us today to book a comprehensive infrastructure architecture review and learn how we can build a more secure, modern, and high-performance software ecosystem for your enterprise.

Technical Deep-Dive FAQs

How does the system ensure complete isolation between different salon tenant databases?

Our development team implemented a database-per-tenant architecture that physically separates user records into isolated MySQL instances. This design pattern ensures that data boundaries are strictly maintained at the schema level, preventing cross-tenant data leaks and allowing custom database modifications for individual clients.

Every salon enterprise connects using unique database user access profiles, making it mathematically impossible for a data request from one salon group to access another tenant’s schema files. This configuration isolates data, helps ensure security compliance, and isolates performance spikes to individual tenant environments.

What mechanism handles the synchronization of data from SQL to MySQL environments?

We built customized extraction and migration scripts that parse incoming SQL data structures and reformat them into compliant MySQL schemas. This transition pipeline uses data verification checkpoints to maintain relational integrity, normalize string values, and prevent data loss during historical record transfers.

The scripts read the source legacy schemas, map data arrays to new data models, transform incompatible data fields, and write clean entries into the destination multi-tenant MySQL databases. Automated testing logs any record mismatches, giving developers a way to fix edge-case data errors before pushing the application live.

How does the T-Max Timer hardware interface with a cloud-hosted SaaS environment?

The physical T-Max hardware connects to a local gateway machine that runs a specialized background polling service developed by our team. This local service captures physical timer signals, packs them into secure JSON payloads, and transmits them via WebSockets to the cloud application.

This directional loop ensures that when an action occurs on the physical timer device, the state changes are immediately visible on the web dashboard. Similarly, bed activation codes sent from the front-desk web interface are received by the local gateway service and passed to the T-Max master controller via low-level serial commands.

What security configurations protect customer payment details during Electronic Funds Transfer processing?

We developed a tokenized transaction pathway using the Authorize.Net API to eliminate the need for storing card details inside our local infrastructure. All cardholder interactions are processed through encrypted transport streams, moving raw credit data completely outside our application database environment.

The platform stores only the random reference tokens provided by the payment gateway, using them to execute monthly Electronic Funds Transfer membership renewals. This approach limits our database liability exposure, satisfies core security framework benchmarks, and keeps customer credit files safe from data breaches.

How are bulk outbound communication queues managed without degrading system performance?

We structured asynchronous processing queues using dedicated background workers to handle large text blasts and email newsletters away from the main interaction thread. This configuration allows automated ProStyleText and Mailchimp operations to execute smoothly without placing heavy processing loads on front-desk checkout terminals.

When a mass marketing broadcast is initiated, the application appends the messages to a queue log. Background processing daemons manage the distribution of these files, keeping application speeds fast and ensuring that physical point-of-sale actions are never slowed down by marketing workflows.

Why did the development team select Google OAuth2 alongside PHPMailer for email delivery?

Our team combined Google OAuth2 protocols with PHPMailer to establish a secure email delivery system that operates without plain-text account credentials. By using secure access tokens instead of passwords, we eliminated credential exposure risks within our application configuration files.

If a backend server is ever compromised, there are no email passwords stored within the application files for an attacker to extract. The temporary authentication tokens are refreshed through cryptographically signed server calls, keeping transactional notifications working smoothly while maintaining a strong security posture.

How does the platform maintain performance during automated database migrations?

We built sequential migration scripts that execute changes in modular phases during designated low-traffic maintenance periods. The deployment setup uses staging tables to run structural database alterations in the background before applying changes directly to active production tables.

This phased methodology reduces database locking times, prevents software downtime, and keeps the multi-tenant system fully functional for active businesses. If a migration script hits an exception, the system stops execution and rolls back to the previous snapshot state to avoid data corruption.

What is the failover strategy when an individual physical salon location loses internet connectivity?

The software uses localized web storage caches and front-end state retention rules to keep salon operations active during network outages. Local terminals queue sales and bed usage logs locally, automatically syncing the gathered transactions to the cloud database when connections resume.

Front-desk staff can continue tracking active bed sessions and recording item checkouts without losing current data states. Once the internet connection is re-established, custom synchronization workers verify transaction timestamps, resolve conflicting customer records, and update the central database instances.

How does Terraform simplify the deployment of new multi-location salon tenants?

We developed declarative Terraform templates that define our complete cloud infrastructure environment, including networks, subnets, and firewalls, as code. This configuration setup enables our deployment group to launch identical, pre-configured environments for new multi-location tenants with minimal manual interaction.

By running these automation templates, we can create secure cloud instances, attach container resources, and mount isolated database storage volumes within minutes. This infrastructure-as-code pattern prevents manual configuration mistakes, shortens client onboarding windows, and keeps our infrastructure organized across all operational zones.



Richard

Active in the last 15m