# Introduction

# What is CloudPOS?

CloudPOS is a multi-tenant SaaS Point of Sale (POS) system built for businesses that need to manage multiple stores or clients from a single installation.

# Key Features

  • Multi-tenant Architecture: Each client (tenant) has isolated data
  • Role-Based Access Control: Manage users with different permission levels
  • Subscription Management: Stripe integration for billing
  • Complete POS Features: Sales, inventory, customers, suppliers, reports
  • Custom Branding: Each tenant can customize their logo and colors
  • Multi-branch Support: Manage multiple store locations
  • Multi-register Support: Multiple cash registers per branch

# Architecture Overview

CloudPOS consists of three main components:

┌─────────────────────────────────────────────────────────┐
│                    CloudPOS System                      │
├─────────────────────────────────────────────────────────┤
│                                                          │
│  ┌──────────────┐    ┌──────────────┐    ┌──────────┐ │
│  │   Client     │    │    Admin     │    │   API    │ │
│  │  (React)     │    │   (React)    │    │ (NestJS)  │ │
│  │              │    │              │    │           │ │
│  │ Port: 5173   │    │ Port: 5173   │    │ Port:3000│ │
│  │              │    │              │    │           │ │
│  │ Tenant App   │    │ SaaS Admin   │    │ Backend  │ │
│  └──────┬───────┘    └──────┬───────┘    └────┬─────┘ │
│         │                   │                  │       │
│         └───────────────────┴──────────────────┘       │
│                          │                             │
│                          ▼                             │
│                  ┌──────────────┐                      │
│                  │   MySQL DB   │                      │
│                  │   (Prisma)   │                      │
│                  └──────────────┘                      │
│                                                          │
└─────────────────────────────────────────────────────────┘

# Components Explained

  1. Client App (/client)

    • React frontend for tenants (store owners)
    • Access via: http://localhost:5173 (dev) or your domain (production)
    • Used by tenants to manage their POS operations
  2. Admin Panel (/client - admin routes)

    • Same React app, different routes (/admin/*)
    • Access via: http://localhost:5173/admin (dev) or https://yourdomain.com/admin (production)
    • Used by SaaS administrators to manage tenants, plans, and settings
  3. API Server (/server)

    • NestJS backend API
    • Access via: http://localhost:3000/api (dev) or https://yourdomain.com/api (production)
    • Handles all business logic, database operations, and integrations
  4. Database (MySQL)

    • Stores all application data
    • Uses Prisma ORM for database access
    • Multi-tenant data isolation built-in

# Multi-Tenant System

In CloudPOS, each tenant (also called "client") is a separate business:

  • Each tenant has their own:

    • Users, products, sales, customers
    • Branches and registers
    • Branding and settings
    • Subscription plan
  • Data is completely isolated between tenants

  • Tenants access the system via subdomain (optional) or direct login

# User Roles

# Tenant-Level Roles (for store owners)

  • ADMIN: Full access to their tenant's data
  • MANAGER: Management access (sales, products, reports)
  • CASHIER: Point of sale operations
  • STAFF: Basic access

# SaaS Admin Roles (for platform administrators)

  • SUPER_ADMIN: Full system access
  • ADMIN: Admin panel access
  • FINANCE: Financial operations only

# Subscription Plans

CloudPOS supports subscription-based billing:

  • Trial: Free trial period
  • Basic: Entry-level plan
  • Pro: Advanced features
  • Enterprise: Full features

Plans can have limits on:

  • Number of users
  • Number of branches
  • Number of products
  • Storage space
  • API calls

# What You'll Achieve After Setup

After completing this setup guide, you will have:

  1. ✅ A running CloudPOS installation
  2. ✅ Database configured with initial data
  3. ✅ Admin panel access to manage tenants
  4. ✅ Ability to create tenant accounts
  5. ✅ Stripe payment integration (optional)
  6. ✅ Email notifications working (optional)
  7. ✅ Production-ready deployment

# Next Steps

  1. Check Requirements to ensure your system is ready
  2. Follow Local Installation for development setup
  3. Or jump to Production Installation for server deployment

Ready to start? Check the Requirements page next.