Nessuna descrizione

Fszontagh 14c7d5422c docs: add project overview and related projects to README 5 giorni fa
cmake eac393a1ec Initial implementation of Smartbotic-MicroBit platform 2 mesi fa
config eac393a1ec Initial implementation of Smartbotic-MicroBit platform 2 mesi fa
docs 6d9589714a docs: add comprehensive project documentation #1 2 settimane fa
external eac393a1ec Initial implementation of Smartbotic-MicroBit platform 2 mesi fa
lib 13fc7ce5d7 Fix auth, registration, and frontend API integration bugs 5 giorni fa
packaging 57ded29e90 Add Docker-based build and deployment packaging for Debian 13 2 mesi fa
src 13fc7ce5d7 Fix auth, registration, and frontend API integration bugs 5 giorni fa
webui 13fc7ce5d7 Fix auth, registration, and frontend API integration bugs 5 giorni fa
.dockerignore 57ded29e90 Add Docker-based build and deployment packaging for Debian 13 2 mesi fa
.gitignore 9bc03da75f Add dist/ to .gitignore for build output packages 2 mesi fa
.gitmodules eac393a1ec Initial implementation of Smartbotic-MicroBit platform 2 mesi fa
CMakeLists.txt cfcf57bbd2 Fix abseil linker error for BUNDLE_DATABASE=ON builds 2 mesi fa
README.md 14c7d5422c docs: add project overview and related projects to README 5 giorni fa

README.md

Smartbotic Microbit

What is this?

Smartbotic Microbit is a self-service admin/management platform on top of the CallerAI telephony AI engine.

The goal: small and medium businesses (hair salons, medical offices, auto repair shops, etc.) can set up an AI phone assistant through a web interface in a few clicks — one that answers calls, responds to questions, and books appointments — without needing to deal with APIs directly.

How it works

  1. A business registers and creates a workspace (company name, address, phone)
  2. Sets up an AI voice assistant bound to a real phone number
  3. Configures a calendar — business hours, available time slots
  4. When someone calls the number, the CallerAI engine handles the call:
    • Greets the caller on behalf of the business
    • Answers questions (address, hours, etc.)
    • Books appointments into the calendar
    • Handles the conversation politely and professionally

Related projects

Project Repo Role
CallerAI fszontagh/callerai The telephony AI engine — SIP gateway, audio pipeline, LLM, automation, assistant management. Handles actual call processing.
Smartbotic Microbit (this) fszontagh/smartbotic-microbit Admin UI on top of CallerAI — workspaces, users, calendar, appointment booking. Calls the CallerAI API via CallerAIClient.
Smartbotic fszontagh/smartbotic Flow/automation platform (node-based, QuickJS). Independent project.
Smartbotic CRM fszontagh/smartbotic-crm CRM system — customer management, documents, LLM tools. Independent project.

Features

  • Multi-Workspace Management: Support for multiple workspaces with team collaboration
  • User Authentication & Authorization: JWT-based authentication with role-based access control (Owner, Admin, Member, Guest)
  • Calendar & Appointment System: Manage calendars, time slots, and appointments with availability tracking
  • AI Voice Assistants: Integration with CallerAI for creating and managing AI-powered voice assistants
  • Team Collaboration: Invite members, manage roles, and collaborate across workspaces
  • Email Notifications: SMTP integration for invitation emails and notifications
  • RESTful API: Comprehensive REST API for all platform features
  • Web UI: React-based modern web interface built with TypeScript and Tailwind CSS

Architecture

Smartbotic Microbit consists of three main components:

  1. Backend Service (smartbotic-microbit): C++20-based HTTP service with RESTful API
  2. Database Service (smartbotic-database): Custom database service for persistent storage
  3. Web UI: React + TypeScript frontend application

For detailed architecture information, see docs/ARCHITECTURE.md.

Quick Start

Prerequisites

  • Linux (Debian/Ubuntu recommended)
  • CMake 3.20+
  • C++20 compatible compiler (GCC 11+ or Clang 14+)
  • Node.js 18+ and npm (for WebUI development)
  • Git

Installation

The easiest way to install Smartbotic Microbit is using the pre-built packages:

# Download the latest release packages
# Install using the provided installer
sudo ./packaging/scripts/install.sh smartbotic-*.tar.gz

# Configure the service
sudo cp /etc/smartbotic/smartbotic.env.default /etc/smartbotic/smartbotic.env
sudo nano /etc/smartbotic/smartbotic.env  # Set JWT_SECRET, SMTP, and CallerAI settings

# Start the services
sudo systemctl enable smartbotic-database smartbotic-microbit
sudo systemctl start smartbotic-database
sudo systemctl start smartbotic-microbit

For detailed installation and deployment instructions, see docs/DEPLOYMENT.md.

Development Setup

For development and building from source:

# Clone the repository with submodules
git clone --recursive https://github.com/fszontagh/smartbotic-microbit.git
cd smartbotic-microbit

# Build the backend
mkdir build && cd build
cmake ..
make -j$(nproc)

# Build the WebUI
cd ../webui
npm install
npm run build

For complete development setup instructions, see docs/DEVELOPMENT.md.

Configuration

The main configuration file is located at /etc/smartbotic/microbit.json (or config/microbit.json for development).

Key configuration sections:

  • Database: Connection settings for the database service
  • HTTP: Server bind address, port, and static file serving
  • Auth: JWT settings and password policy
  • SMTP: Email server configuration for notifications
  • CallerAI: API credentials for AI assistant integration
  • CORS: Cross-origin resource sharing settings
  • Rate Limiting: API rate limiting configuration

Environment variables can be used to override configuration values using the ${VAR_NAME:default} syntax.

API Documentation

The platform provides a comprehensive RESTful API. Key endpoint groups:

  • /api/v1/auth/* - Authentication (register, login, refresh tokens)
  • /api/v1/users/* - User management
  • /api/v1/workspaces/* - Workspace CRUD and member management
  • /api/v1/workspaces/:id/assistants/* - AI assistant management
  • /api/v1/workspaces/:id/calendars/* - Calendar and appointment management
  • /api/v1/invitations/* - Workspace invitations
  • /api/v1/settings/* - Global and workspace settings

For complete API documentation, see docs/API.md.

Usage

Creating a Workspace

After registering and logging in, create your first workspace:

curl -X POST http://localhost:8090/api/v1/workspaces \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Company",
    "company_name": "Acme Corp",
    "address": "123 Main St",
    "phone": "+1-555-0100"
  }'

Inviting Team Members

curl -X POST http://localhost:8090/api/v1/workspaces/WORKSPACE_ID/invitations \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "colleague@example.com",
    "role": "member"
  }'

Creating an AI Assistant

curl -X POST http://localhost:8090/api/v1/workspaces/WORKSPACE_ID/assistants \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customer Support Bot",
    "phone_number": "+1-555-0200",
    "instructions": "You are a helpful customer support assistant..."
  }'

Documentation

Technology Stack

Backend:

  • C++20
  • httplib (HTTP server)
  • nlohmann/json (JSON parsing)
  • spdlog (Logging)
  • JWT-CPP (JWT tokens)
  • BCrypt (Password hashing)
  • gRPC (Database communication)

Frontend:

  • React 19
  • TypeScript
  • Tailwind CSS 4
  • React Router
  • TanStack Query
  • Zustand (State management)
  • Vite (Build tool)

Database:

  • Custom smartbotic-database service
  • Protocol Buffers (gRPC interface)

License

Copyright © 2024 Smartbotics AI

Support

For issues and questions, please use the GitHub issue tracker or contact support@smartbotics.ai.