← All work
Product · 2019–21

Real-Time Ordering Backend API

A restaurant POS / digital-menu platform

Overview

The core backend API for a restaurant POS / digital-menu platform, exposing the REST endpoints behind the consumer ordering app and the admin tools, with real-time order delivery to connected devices.

The Challenge

A POS platform needs a reliable, structured backend to model menus, orders, restaurants, devices, and promotions, authenticate users, and push new orders to kitchen/staff devices in real time as they are placed.

What We Built

An AdonisJS (Node.js) application organized into Controllers, Models, Services, Middleware, and Commands. HTTP controllers cover the full domain: orders (Comanda/Comenzi), menu (Meniu), restaurants, addresses (Adrese), devices, admin users, notifications, promotions (Promotii), and discounts (Reducere). The Lucid ORM models the data, orders, order history (IstoricComenzi), products, users, devices, addresses, and tokens, over a SQLite database, with helper scripts to build, download, and upload the database. Real-time order notifications are delivered via Pusher (adonis-pusher), authentication and CORS are handled through Adonis providers, and file handling uses Adonis Drive. The service ships with a Dockerfile for containerized deployment.

Technologies & Approach

AdonisJS chosen for its batteries-included MVC structure (auth, Lucid ORM, body parsing, CORS, Ignitor bootstrapping). Pusher integration provides live order push to devices, and the codebase is containerized with Docker for deployment.

Outcome / Impact

Provided the central, real-time backbone that the mobile ordering app and admin interfaces depend on, handling order capture, menu data, and live device notifications across the platform.

Capabilities Demonstrated

  • REST API design and domain modeling with AdonisJS and Lucid ORM
  • Real-time event delivery via Pusher (live order notifications)
  • Authentication, CORS, and file-storage integration
  • Containerized backend deployment with Docker
More work See all →