Business & Operations

Servo - Restaurant Delivery Manager

Source code included

Complete restaurant operations software: ordering, kitchen, delivery, dine-in and head office in one ASP.NET app

Built by X1980 Group Updated 4 Oct 2026 36,679 lines of code

Open live demo Built withClaude Code

Why Servo - Restaurant Delivery Manager

What makes it better
than the alternatives

  1. 01

    One deployment serves five surfaces

    No separate admin app, no microservices, no message broker to operate

  2. 02

    Server-side pricing engine calculates VAT, delivery fees, promotions, loyalty and tips in PricingService

    Client never computes a total

  3. 03

    Row-level security enforced by SQL Server session context

    Branch accounts physically cannot read another branch's data

  4. 04

    Automatic rider assignment by real road distance from Google Maps, with manual override and a rider simulator for demonstrations

    Automatic rider assignment by real road distance from Google Maps, with manual override and a rider simulator for demonstrations

  5. 05

    AI chat assistant with Claude integration, knowledge base and handover to human agents when the bot cannot answer

    AI chat assistant with Claude integration, knowledge base and handover to human agents when the bot cannot answer

Customer Ordering (PWA)

  • Browse menu by category with allergen warnings and item availability
  • Four order modes: delivery
  • takeaway
  • dine-in and catering enquiries
  • Server-side cart pricing with promotions
  • loyalty points
  • delivery fees and tips
  • Scheduled orders
  • gift orders with recipient and message
  • contactless delivery notes
  • Live rider tracking on a map with ETA and remaining distance
  • Order history
  • reorder
  • rate and review
  • report issues
  • Table reservations with availability check and visual floor plan
  • Guest checkout or verified account via one-time SMS code (OtpService)
  • Installable PWA with offline support and push notifications

Delivery Agent App (PWA)

  • Shift control: clock in
  • clock out
  • break
  • earnings summary
  • Job offers with distance
  • fee and accept/decline
  • Turn-by-turn navigation with Google Maps polyline
  • Handover code verification
  • photo and signature proof of delivery
  • Failed delivery reasons and cash reconciliation
  • Trip fees calculated from configurable settings (base fee
  • per-km rate
  • time-based multipliers)
  • Live position broadcast over SignalR for customer tracking
  • Rider simulator for demonstrations (RiderSimulatorService)
  • Installable PWA
  • works without sign-in when Demo:OpenRiderApi is on

Branch Portal & Kitchen Display

  • Live ticket queue with audible alert and allergen highlighting
  • Accept
  • reject with reason
  • advance through validated state machine (OrderStateMachine)
  • Per-item availability toggle
  • prep-time extension under load
  • branch pause
  • Manual rider assignment override with distance and availability check
  • Table plan with reservation status
  • call-waiter alerts (bill
  • assistance
  • complaint)
  • Catering enquiry queue with quoted quantities and status tracking
  • Branch reports: sales
  • top items
  • order counts
  • rider performance
  • Per-branch opening hours including Ramadan schedule
  • delivery zones as polygons
  • Permissions: OrdersView
  • OrdersManage
  • MenuAvailability
  • TablesManage
  • ReportsBranch

Head Office Console

  • Catalogue: items
  • categories
  • modifiers
  • allergens
  • promotions with usage caps
  • Branch management: hours
  • modes
  • delivery zones
  • prep times
  • service fees
  • Rider fleet: onboarding
  • vehicle assignment
  • earnings
  • shift history
  • Order dashboard: live queue
  • search
  • detail
  • manual status override
  • refunds
  • Customer insights: map
  • order history
  • loyalty tier
  • wallet balance
  • reviews
  • Live chat inbox with AI assistant handover and knowledge base (AssistantService)
  • Promotions: discount types
  • per-customer limits
  • date ranges
  • branch restrictions
  • Banners for customer home screen with image upload and ordering
  • Users and permissions: 18 granular permissions (Perm constants in Permissions.cs)
  • Reports: sales performance
  • customer cohorts
  • rider efficiency
  • order trends

Dine-In QR Menu

  • Scan QR code at table
  • browse menu
  • order without account or install
  • Table service: call waiter for bill
  • assistance or complaint (TableCall)
  • Order status updates over SignalR
  • kitchen prepares and delivers to table
  • Reservation system with availability check and visual floor plan
  • Table auto-release after reservation duration (TableReleaseService)
  • No sign-in required
  • orders linked to table number and session

Pricing & Promotions

  • PricingService calculates all prices server-side: VAT
  • delivery fee
  • service charge
  • promotions
  • loyalty
  • tips
  • Promotions: percentage or fixed discount
  • minimum order
  • usage caps
  • per-customer limits
  • Loyalty points earned and redeemed
  • customer tiers with benefits
  • Delivery fees from zone polygons or distance-based calculation
  • Service charge configurable per branch and mode (BranchMode.ServiceFeePct)
  • Promo validation endpoint checks code against order before placement
  • Cart pricing endpoint returns itemised breakdown with all fees visible

Delivery & Routing

  • Automatic rider assignment by real road distance from Google Maps (AssignmentService)
  • Delivery zones as polygons with per-zone fees
  • minimums and ETAs
  • Serviceability check before cart: lat/lng → nearest branch
  • zone
  • fee
  • ETA
  • Route polyline stored and sent to customer for live tracking
  • Rider position updates over SignalR
  • ETA recalculated from remaining distance
  • Manual assignment override in branch portal and HQ console
  • Rider simulator moves ghost riders around the map for demonstrations (RiderSimulationState)
  • Failed delivery reasons: customer unavailable
  • wrong address
  • refused
  • other

Chat & AI Assistant

  • Customer chat bubble in app
  • conversations addressed by random reference
  • AI assistant powered by Claude (Anthropic API)
  • configurable greeting and model
  • Knowledge base: upload documents
  • assistant answers from them (AssistantService)
  • Handover to human agent when AI cannot answer or customer requests it
  • Agent inbox in HQ console: open conversations
  • message history
  • resolve
  • Chat history and analytics: conversation count
  • handover rate
  • resolution time
  • Settings: enable/disable AI
  • API key
  • model
  • greeting
  • handover threshold
  • Works without AI: every conversation goes straight to human agent when disabled

Reservations & Tables

  • Table plan with visual floor plan
  • seat count
  • status (available
  • reserved
  • occupied
  • blocked)
  • Reservation availability check: which tables are free at a requested time
  • Book by phone or from customer app
  • reference generated (RSV-1234)
  • Reservation status: confirmed
  • seated
  • completed
  • cancelled
  • no-show
  • Table auto-release after duration (TableReleaseService runs every 5 minutes)
  • Call-waiter alerts: bill
  • assistance
  • complaint
  • resolved by branch staff
  • Reservation cancellation by customer (own bookings only) or branch
  • Per-branch table configuration
  • add/edit/block tables in branch portal

Security & Permissions

  • Two cookie schemes: staff (AuthSchemes.Staff) and customer (AuthSchemes.Customer)
  • Staff sign-in with lockout
  • hash check
  • login history (StaffSignInService)
  • Customer sign-in: verified by one-time SMS code or guest checkout (CustomerAuthService)
  • 18 granular permissions: OrdersView
  • OrdersManage
  • MenuEdit
  • RidersManage
  • ReportsHq
  • etc.
  • Row-level security: BranchIsolationPolicy filters 10 tables by SESSION_CONTEXT('BranchId')
  • Order ownership: [RequireOrderAccess] checks customer or staff can read/modify order
  • Request audit: structured logging with user
  • correlation id
  • outcome (RequestAuditMiddleware)
  • Rate limiting: auth endpoints
  • order placement
  • promo validation (RateLimitingSetup)
  • No credentials in source: appsettings.json has local defaults and empty placeholders

Quality report

Manually reviewed

91/ 100

Automated audit score

◷ 2 open warnings

Passed the audit and a manual review.
Audit run: 4 Oct 2026
Reviewed by Vibe96 staff, Dubai.

Security92
Code structure82
Docs & completeness100
Dependency health95
Build & deploy92

What to know before you buy

2 non-blocking findings shown publicly: strong authentication and role checks; minor ownership gaps on read endpoints; no real credentials found; weak defaults and example patterns need hardening before production. The seller has been notified; fixes ship in the next version.

Versions & updates

1.0.0
First release4 Oct 2026✓ Reviewed & audited

No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.

Quality report

What you get

  • </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
  • ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
  • ↻One year of updatesEvery new version the builder publishes, free for 12 months.
  • ♧30 days of supportInstallation and defect support through Vibe96 tickets.
$399Single-site licence Details