Servo - Restaurant Delivery Manager | Vibe96

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 CodeHarbor Updated 22 Oct 2026 36,679 lines of code

Open live demo Built withClaude Code

About this software

About Servo - Restaurant Delivery Manager

Serveo runs the whole restaurant operation from one codebase and one SQL Server database. Five user-facing surfaces share the same deployment: a customer PWA for ordering and tracking, a rider PWA for delivery agents, a branch portal with kitchen display and table management, a head-office console for catalogue and operations, and a QR menu for dine-in. The platform handles delivery, takeaway, dine-in and catering enquiries with server-side pricing, automatic rider assignment by road distance, live tracking over SignalR, table reservations with a visual floor plan, and an AI chat assistant backed by Claude.

Category: Business & OperationsStack: ASP.NET Core 9 MVC · SQL Server 2019+Built with: Claude Code Licence: Single-site, full source

Why Servo - Restaurant Delivery Manager

What makes it better
than the alternatives

  1. 01

    One deployment serves five surfaces

  2. 02

    Server-side pricing engine calculates VAT

    Delivery fees, promotions, loyalty and tips in PricingService

  3. 03

    Row-level security enforced by SQL Server session

    Context

  4. 04

    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

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

✓ Passed the audit

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
Reviewer notes (2 minor)

Strong authentication and role checks; minor ownership gaps on read endpoints; no real credentials found; weak defaults and example patterns need hardening before production. None of these stop the software from working; the developer has been told and improvements come in a future update.

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.
$67Single-site licence Details