Skip to main content

Overview

SushiGo is a comprehensive restaurant management platform built within the ComandaFlow ecosystem. It provides end-to-end solutions for managing inventory across multiple locations, tracking cash operations, monitoring employee attendance, and processing payroll.

Get Started

Set up SushiGo and run your first instance in minutes

Installation Guide

Full installation instructions for development and production

API Reference

Complete API documentation with examples

Development Setup

Configure your development environment

Key Features

Multi-Location Inventory

Track stock across branches and temporary event locations with full movement history and unit conversions

Cash Management

Manage cash sessions, registers, terminals, adjustments, and expenses with complete audit trails

Employee Attendance

Real-time check-in/out tracking with lunch breaks and comprehensive attendance reports

Role-Based Access

Granular permissions using Spatie Permissions with Passport OAuth authentication

Operating Units

Organize operations by branches and temporary events with isolated inventories

REST API

Comprehensive API with Swagger documentation and Single Action Controllers

Tech Stack

SushiGo is built with modern, production-ready technologies:
  • PHP 8.2 with Laravel 12 framework
  • PostgreSQL 15 for data persistence
  • Laravel Passport for OAuth authentication
  • Spatie Permissions for role-based access control
  • L5 Swagger for API documentation

Architecture

SushiGo follows a Single Action Controller (SAC) pattern where each controller handles one specific action via the __invoke() method. This promotes focused, testable code with clear responsibilities.
app/Http/Controllers/Api/V1/
├── Items/
│   ├── CreateItemController.php
│   ├── ListItemsController.php
│   └── UpdateItemController.php
├── Inventory/
│   ├── RegisterOpeningBalanceController.php
│   └── RegisterStockOutController.php
└── Employees/
    ├── CreateEmployeeController.php
    └── ListEmployeesController.php
Business logic is extracted into dedicated service classes and actions:
  • Actions (app/Actions/) - Reusable business logic
  • Services (app/Services/) - Complex operations
  • Requests (app/Http/Requests/) - Input validation
  • Resources (app/Http/Resources/) - Response formatting

Quick Example

Here’s how to authenticate and fetch inventory items:
# Login
curl -X POST http://localhost:8080/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "admin123456"
  }'

# Fetch items
curl -X GET http://localhost:8080/api/v1/items \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Getting Help

GitHub Repository

View source code, report issues, and contribute

API Documentation

Interactive Swagger UI (available when running locally)

Next Steps

1

Follow the Quickstart

Get SushiGo running locally with Docker Compose in under 5 minutes
2

Explore Core Concepts

Learn about Operating Units, Authentication, and Permissions
3

Read Module Guides

Dive into Inventory Management, Cash Operations, and Employee Management
4

Check the API Reference

Explore detailed endpoint documentation with request/response examples

Build docs developers (and LLMs) love