Planet Donuts
Customer app, call center, branches, factories, warehouses and one admin panel
The whole platform a donut chain runs on. Customers order from the app and website, the call center takes phone orders, branches sell through POS and waiter apps, factories produce, warehouses supply them, and one admin panel manages it all.
- Customer app and website: sign-up with SMS codes, menus and prices per branch, delivery and pickup, saved addresses, card payments (PayTabs, MEPS), wallet, loyalty points, gift cards, ratings and push notifications.
- Call center: phone orders for any branch, customer lookup, complaints, call records and agent reports.
- Branches: POS, waiter and branch apps with tables, shifts, Z-reports and inventory counts. An offline server keeps selling without internet, drives card terminals and kitchen printers, and syncs when the connection is back. Cashier screens are recorded and played back as video streams (HLS), and staff checklists are checked by location.
- Factories, warehouses and maintenance: branch orders to factories, recipes and production, barcodes, Arabic PDFs, purchase orders and stock ledgers, embedded Metabase dashboards and maintenance tickets, with one sign-in across every panel using single-use signed tickets.
- Admin panel: one place to manage menus and branch prices, offers, employees and roles, every order, the call center, delivery providers, WhatsApp campaigns, app content, reports and the audit log.
- A WhatsApp Business module on Meta's Cloud API: message templates, broadcasts to contact lists imported from Excel, signed webhooks for replies and delivery status, and the cost of each campaign.
- Delivery platforms (Careem, MyThings) with a menu sync that retries on failure, order intake and status updates; Jordan's e-invoicing (JoFotara) recorded in an append-only ledger; an audit log of every field changed and by whom.
- My part
- Backend for every part: designed and built. Admin panel (Angular): I added pages such as reports, WhatsApp broadcasts, QR sessions, table order history and the company factory report.
- Stack
- Java 21, Spring Boot, PostgreSQL, Redis, RabbitMQ, Flyway, Docker, GitHub Actions, AWS EC2, Cloudflare, k6, Angular
