# 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
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
Admin Panel (
/client- admin routes)- Same React app, different routes (
/admin/*) - Access via:
http://localhost:5173/admin(dev) orhttps://yourdomain.com/admin(production) - Used by SaaS administrators to manage tenants, plans, and settings
- Same React app, different routes (
API Server (
/server)- NestJS backend API
- Access via:
http://localhost:3000/api(dev) orhttps://yourdomain.com/api(production) - Handles all business logic, database operations, and integrations
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:
- ✅ A running CloudPOS installation
- ✅ Database configured with initial data
- ✅ Admin panel access to manage tenants
- ✅ Ability to create tenant accounts
- ✅ Stripe payment integration (optional)
- ✅ Email notifications working (optional)
- ✅ Production-ready deployment
# Next Steps
- Check Requirements to ensure your system is ready
- Follow Local Installation for development setup
- Or jump to Production Installation for server deployment
Ready to start? Check the Requirements page next.