Skip to content

Architecture Overview

The Envia Admin platform is organized as a monorepo containing two independent applications that work together to provide the administrative interface.

High-Level Architecture

admon-monorepo/
├── backend/    → Node.js REST API (Hapi.js)
├── frontend/   → Vue 3 SPA (Vite) + PHP Server (CodeIgniter 4)
└── documentation/ → This documentation site (VitePress)

Technology Stack

LayerTechnologyVersion
Backend RuntimeNode.js18.x
Backend FrameworkHapi.js21.x
DatabaseMySQLmysql2
Cache & QueuesRedis + Bull
Frontend FrameworkVue 3 (Composition API)3.5
Frontend BuildVite7.x
State ManagementPinia3.x
StylingBootstrap 5 + SCSS5.3
Frontend ServerCodeIgniter 4 (PHP 8.1+)
ObservabilityDatadog (dd-trace)

Application Flow

The frontend Vue SPA communicates with the backend REST API over HTTP. The PHP server (CodeIgniter 4) handles server-side rendering and serves the Vue application.

Browser → CodeIgniter 4 (PHP) → Serves Vue 3 SPA

                               Hapi.js REST API

                              MySQL / Redis / S3

Deployment

Both applications deploy independently to Heroku:

ApplicationProcess Types
Backendweb: node server.js / worker: node worker.js
Frontendweb: vendor/bin/heroku-php-apache2 ...

Explore Further

Envia Admin