Skip to content

CEGAS admin system

Web system for inspections, PDF certificates and payments at a gas inspection body.

Client
CEGAS
Role
Full stack developer
Period
Aug 2026 – present
Stack
Node.js · Express · EJS · MySQL · bcrypt · reCAPTCHA v3 · cPanel
Visit cegas.cl

The code is private to protect client confidentiality.

Home screen of CEGAS admin system

Problem

CEGAS is a body that inspects and certifies gas installations. It needed one place for its clients, inspections, quotes and certificates, and its website forms needed protection from spam.

Solution

  • I built the administrative web system with Node.js 20, Express, EJS and MySQL: clients, installations, inspections with a status traffic light, quotes, payments and a calendar.
  • I built PDF certificates with sequential folio numbers and alerts for expiry at 24 months.
  • I implemented roles, a super-admin, support tickets, photo records and a change log.
  • I applied security measures: CSRF protection, helmet with CSP, bcrypt, login rate limiting, sessions stored in MySQL and automatic logout on inactivity.
  • I protected the site’s two forms with reCAPTCHA v3, a honeypot and PHP filters.
  • I used server-side pagination and gzip, and deployed to cPanel (Passenger) with idempotent SQL migrations.

Outcome

A listing of 3,000 records went from 2.6 MB and 0.6 s to 6.7 KB and 0.07 s. The forms passed 9 of 9 anti-spam tests in production.

More screens

Inspection log with its approval seal
Inspection log with its approval seal
Inspection detail with result and certificate
Inspection detail with result and certificate
Issued certificates with sequential folio numbers
Issued certificates with sequential folio numbers
Inspection record on a phone
Inspection record on a phone