Savor is a complete, full-stack food-delivery application in Java. Customers browse restaurants, fill a cart and pay; the restaurant accepts and cooks the order; the nearest courier collects it and brings it to the door while the customer follows it on a map; an administrator runs the service. Use it to build your own branded delivery marketplace, or a single restaurant’s ordering app, with Codename One.

Generate your project · Read the user’s guide · Browse the source

In the Initializr, choose the Savor food-delivery template, set your application name and package, and generate the project. The application source is licensed under MIT-0: you can modify it, use it commercially and keep your changes private without royalties.

What comes with the application?

PartIncluded workflows
CustomerChoose a delivery address, browse restaurants by cuisine or dish, build an order with options, apply a promo code and tip, follow the order on a map, reorder and keep favorites
RestaurantAccept orders with a preparation time or reject them, mark them ready, pause the kitchen, edit the menu and photos, view sales
CourierApply with documents, go online, accept nearby deliveries, collect and deliver, view and cash out earnings
AdministrationApprove restaurants and couriers, flag or block accounts, cancel and refund orders, set prices and promos, view the service in charts
Java backendAccounts and roles, phone verification, menus, dispatch, order and delivery state, payments, payouts and live updates over WebSocket
Shared codeAPI contracts and data classes shared between the client and server

The account’s roles decide which screens a person sees. The same client project targets iOS, Android, desktop and the web, and the server runs on SQLite, PostgreSQL, MySQL and MariaDB.

Savor customer home Savor order on its way Savor restaurant order queue Savor courier delivery offer

From first run to customization

  1. Run the project. The development profile needs nothing installed: an in-memory database, demo accounts, twelve restaurants and a simulated kitchen and courier, so one customer can follow an order end to end.
  2. Try every role. The user’s guide walks through the customer, restaurant, courier and admin screens with the demo accounts and test cards.
  3. Customize and deploy. The implementor’s guide covers branding, a single-restaurant or marketplace setup, billing, maps, sign-in, text messages, analytics, the database and hosting.

What does a live service still need?

Savor supplies the connected application and its source. Running a delivery service also requires your own hosting, provider configuration and operational testing.

Development uses simulated payments. The Stripe integration is a starting point tested with stand-in responses; it has not been run against a live Stripe account. Before accepting real money, test it with a Stripe test key and complete the payout handling your service needs. Text messages need a configured provider (Twilio, Vonage or MessageBird), which may charge fees.

Looking for ride hailing?

Wayline is the sibling sample for taxi and ride-sharing services: rider, driver and admin apps on the same architecture.