← Back to Apps
📦

X-Food — Nigeria's Favourite Meals, Delivered Hot

X-Food is a complete restaurant ordering and delivery platform combining a customer web storefront, an admin back-office, a rider portal and a versioned mobile REST API in a single Laravel codebase.

X-Food — Nigeria's Favourite Meals, Delivered Hot
Interface Design

Multi-Platform Views

Screenshot
The storefront landing page — branded hero, promotional banner, category grid and featured dishes, served by Storefront\StoreController@index with a live Alpine.js cart badge.
Screenshot
The full menu of Nigerian favourites with search and category filtering, paginated across the Category and MenuItem models.
Screenshot
A dish detail page showing add-on groups for proteins and extras alongside quantity selection, with add-on relationships eager-loaded.
Screenshot
The shopping cart with editable quantities and a live VAT-inclusive order summary, backed by the Alpine.js localStorage cart store.
Screenshot
Checkout with the delivery, pickup and dine-in choice, a saved delivery address, order notes and payment method selection between Paystack and cash on delivery.
Screenshot
Customer order history listing every past order with its current status at a glance, scoped by an ownership check to the signed-in user.
Screenshot
Live order tracking — the visual status timeline running from Pending through Confirmed, Cooking, Ready and On the Way to Delivered, rendered from OrderStatusLog entries.
Screenshot
The customer profile screen for personal details and secure password management, handled by Storefront\ProfileController.
Screenshot
Saved delivery addresses, where a customer maintains multiple entries and marks one as the default used at checkout.
Screenshot
Phone-first customer registration, reflecting the platform's use of the phone number as the primary identifier with email optional.
Screenshot
Sign-in via phone number and password, with role-based redirects sending admins to /admin, riders to /rider and customers to the storefront.
Screenshot
The admin dashboard — today's revenue, order volume, the pending queue and recent orders, gated by role middleware for Super Admin, Branch Manager, Cashier and Kitchen.
Screenshot
Admin order management: a filterable operations view of every order across the restaurant, served by Admin\OrderController.
Screenshot
The order workflow screen combining status control via the Order::validTransitions() state machine, rider assignment and manual payment confirmation.
Screenshot
Menu management listing every dish with pricing, availability and featured flags, offering full create, edit and delete.
Screenshot
The menu item editor covering category assignment, pricing, availability and featured flags, imagery by URL, and slug uniqueness validation.
Screenshot
Category management, organising the menu into visual categories with images, display ordering and per-category item counts.
Screenshot
User and staff management across all six roles — Super Admin, Branch Manager, Cashier, Kitchen, Rider and Customer — with active and disabled control.
Screenshot
Restaurant settings for the VAT toggle and rate, bank-transfer details, contact channels and branding, backed by the Restaurant and StorefrontSetting models.
Screenshot
The mobile-friendly rider portal with its availability toggle, live assigned-delivery list, pickup and deliver actions and tap-to-call contact.

About This App

X-Food is a full-stack food-ordering and delivery platform built specifically for the Nigerian market. It brings four distinct experiences together in one codebase: a customer-facing web storefront for browsing and ordering, an admin back-office for running the entire operation, a dedicated rider portal for the delivery fleet, and a versioned REST API that powers companion mobile apps. Rather than stitching together separate systems, everything from the first tap on a dish to the final delivery confirmation lives in a single, coherent application.

The platform is built for restaurants and food brands that need to take orders online without inheriting heavy infrastructure. Customers order for delivery, pickup or dine-in and pay online with Paystack or by cash on delivery. The phone number — not the email address — is the primary identifier throughout, reflecting how customers in Nigeria actually sign up and sign in. The whole system is engineered to run on affordable Namecheap shared hosting using Apache, MySQL and PHP 8.3, with no Node.js runtime required in production.

On the customer side, the storefront opens with a branded hero, a promotional banner, a category grid and a row of featured dishes. The menu is fully searchable and filterable by category, and each dish has its own detail page with add-on groups for proteins and extras. The cart carries live, VAT-inclusive totals, and checkout handles delivery, pickup or dine-in with saved addresses, order notes and a choice of payment method. Once an order is placed, customers follow it through a visual status timeline that runs from Pending all the way to Delivered. Customer accounts cover profile details, password management and multiple saved delivery addresses with a chosen default.

The admin back-office gives staff an at-a-glance operational picture — today's revenue, order volume, the pending queue and recent orders — and then the controls to act on it. Order management supports filtering across every order, advancing status through an enforced workflow, assigning riders and confirming payments manually where needed. Menu and category management provide full create, edit and delete over dishes, pricing, availability, featured flags, imagery and display ordering. User and staff management spans all six role types with active and disabled control, and restaurant settings cover VAT configuration, bank-transfer details, contact channels and branding.

The rider portal is a mobile-friendly workspace built around how a delivery rider actually works: an availability toggle, a live list of assigned deliveries, pickup and deliver actions, and tap-to-call access to the customer. Delivery status stays synchronised with order status, so what the rider does in the field is immediately reflected in the back-office and in the customer's tracking timeline.

Beyond the web interfaces, a versioned REST API under /api/v1 exposes 32 endpoints across auth, storefront, menu, orders, profile, notifications, payments, push, rider and admin groups — enough to drive companion mobile apps for customers, riders and administrators. Authentication uses Laravel Sanctum bearer tokens with a 30-day expiry, refresh rotation and revocation on logout, and every response follows a consistent success/data/error envelope. In-app notifications are persisted and surfaced through the API, and device push tokens are registered and stored ready for push delivery to mobile apps.

Branding and configuration are handled from within the product rather than in code. Restaurant identity, VAT toggle and rate, contact channels and bank-transfer details are all editable from the admin settings screen, backed by the Restaurant and StorefrontSetting models. Menu and category imagery is referenced by URL, which keeps the app light enough to deploy cleanly on shared hosting without a heavy asset pipeline.

How It Works

1. Browse — A customer lands on the storefront and explores the branded hero, category grid and featured dishes, then moves to the searchable, category-filtered menu.
2. Choose — They open a dish detail page, pick from add-on groups such as proteins and extras, select a quantity, and add the item to the cart.
3. Cart — The Alpine.js localStorage cart tracks quantities and shows a live, VAT-inclusive order summary with a cart badge visible across the storefront.
4. Checkout — The customer selects delivery, pickup or dine-in, picks a saved address, adds any order notes, and chooses to pay online with Paystack or by cash on delivery. Order creation runs inside a database transaction.
5. Payment — For online payments, the platform initializes the transaction with Paystack and verifies it on return via /payment/verify/{reference}, confirming the order automatically on success.
6. Confirm — The order lands in the admin pending queue. Staff review it on the dashboard and in order management, then advance it through the enforced status workflow and confirm payment where it was taken manually.
7. Prepare — The order moves PENDING to CONFIRMED to COOKING to READY, with each transition validated by the Order state machine and written to an OrderStatusLog entry for a full audit trail.
8. Dispatch — An admin assigns a rider to the order. The rider, marked available in the rider portal, sees the delivery appear in their live list and marks it picked up, moving the order to ON_THE_WAY.
9. Deliver — The rider marks the order delivered, delivery status syncs back to order status, and the customer's visual timeline updates to Delivered on their order tracking page.

Let's Build Your Business Solution

Transform your operational efficiency with SENUX. Our experts are ready to map your requirements to a powerful architecture.

Frequently Asked Questions

What exactly is included in X-Food?+

Four experiences in a single codebase: a customer web storefront for browsing, cart, checkout and tracking; an admin back-office for orders, menu, staff and settings; a rider portal for availability and deliveries; and a versioned REST API for companion mobile apps.

What technology is it built on?+

Laravel 13.19.0 on PHP 8.3.30 with a MySQL 8.4 database via Eloquent. The web UI uses Blade templates with Tailwind CSS and Alpine.js, Livewire 4.3 provides reactive components, and Laravel Sanctum 4.3 secures the API with bearer tokens.

What hosting do we need to run it?+

It is designed for affordable Namecheap shared hosting — Apache and MySQL with PHP 8.3 — and requires no Node.js runtime in production. The Laravel public/ directory maps to public_html/, configuration is handled via .env, and migrations run over SSH or a one-off artisan call. You will need PHP 8.3+ with the standard Laravel extensions, MySQL 8.x or MariaDB 10.6+, Composer 2, and a Paystack account for online payments.

How can customers pay?+

Online with Paystack, or by cash on delivery. The platform also supports bank transfer, with bank details configured from restaurant settings. Paystack payments are initialized and then verified on return, confirming the order automatically on success.

Can customers order for collection or to eat in, not just delivery?+

Yes. Checkout supports three order types: delivery, pickup and dine-in.

How do customers know where their order is?+

Each order has a visual status timeline that customers follow from Pending through Confirmed, Cooking, Ready and On the Way to Delivered. Every status change is recorded, so the history is complete and auditable.

What roles can we give our team?+

Six roles are supported: Super Admin, Branch Manager, Cashier, Kitchen, Rider and Customer. Access is enforced by role middleware on the web (403 on mismatch) and by API role middleware on the rider and admin API groups. Staff accounts can also be set active or disabled.

How do riders receive and complete jobs?+

Riders work from a dedicated mobile-friendly portal. They set their availability with a toggle, see a live list of assigned deliveries, use tap-to-call to reach the customer, and mark orders picked up and then delivered. Delivery status stays in sync with order status.

Can we brand it and configure it for our restaurant?+

Yes. The restaurant settings screen covers restaurant identity and branding, the VAT toggle and rate, contact channels and bank-transfer details. Menu and category imagery is referenced by URL, so no heavy asset pipeline is needed.

Does it support mobile apps?+

Yes. A versioned REST API under /api/v1 exposes 32 endpoints across auth, storefront, menu, orders, profile, notifications, payments, push, rider and admin groups, powering companion apps for customers, riders and administrators. Authentication uses Sanctum bearer tokens with a 30-day expiry, refresh rotation and logout revocation, and in-app notifications plus device push-token registration are built in.

Request This App for Your Business

Tell us your details and we'll send full information, pricing and next steps shortly.

From our Blog

View all →
AI Won't Replace Your Business — But Your Competitor Using AI Might | Senux
Jul 25, 2026

AI Won't Replace Your Business — But Your Competitor Using AI Might | Senux

The threat was never the machine. It is the business down the road answering enquiries in under a minute while you sleep. Walk the response-decay track, flip the switchboard, and see the gap in real numbers.

The Hidden Cost of Ignoring Website Maintenance
Jul 25, 2026

The Hidden Cost of Ignoring Website Maintenance

Website neglect never sends an invoice. Scrub through 24 months of drift, watch the cumulative cost lines cross, and read the six costs that never appear on any bill.

Is Your Website Really Secure? Here's How to Find Out | Senux
Jul 25, 2026

Is Your Website Really Secure? Here's How to Find Out | Senux

Most hacked websites look completely normal. Walk the seven ways in, watch the breach clock run, and run the 12-point inspection on your own site in about twenty minutes.

Your Website Should Be Your Best Employee
Jul 25, 2026

Your Website Should Be Your Best Employee

Your website works 720 hours a month and never takes leave. Here is the job description, a six-question appraisal you can score right now, and what it really costs.

5 Business Tasks You Should Never Do Manually Again
Jul 25, 2026

5 Business Tasks You Should Never Do Manually Again

Data entry, invoice chasing, booking, reporting and onboarding quietly eat 7.6 hours a week. Here are the 5 tasks to automate first — and how Senux builds it.

You Don't Need an Email Automation Subscription
Jul 25, 2026

You Don't Need an Email Automation Subscription

Email platforms bill you for contacts you already own. Senux builds scheduled sends, trigger sequences and reports into your dashboard — no monthly fee.

Stop Paying Employees to Do Repetitive Tasks
Jul 25, 2026

Stop Paying Employees to Do Repetitive Tasks

Your team loses about 7.6 hours a week to repetitive work — while you rent 25 subscriptions. Senux builds automation you own outright, with no monthly fees.

If Your Website Is WordPress, You're Missing a Lot
Jul 25, 2026

If Your Website Is WordPress, You're Missing a Lot

WordPress runs 41.5% of the web — and 13,000 sites are hacked daily, 91% through plugins. Here's what that really costs your business, and what Senux builds instead.

Do You Have a Backup for Your Website? If Not, You're at Risk
Jul 24, 2026

Do You Have a Backup for Your Website? If Not, You're at Risk

One bad update, hack, or server failure can erase your website overnight — and 60% of small businesses hit by major data loss close within 6 months. See why a backup isn

We use cookies to improve your experience. By using this site you accept our use of non-essential cookies.