fernanda.dev
  • Home
  • About
  • Projects
  • Skills
  • Experience
  • Testimonials
  • Contact
·
·
Hire Me
← Back to portfolio
2026

ACM Calunga

Internal stock & sales management system for a retail store

Internal stock and sales management system (a lightweight ERP) for a retail store selling clothing, footwear, cosmetics, accessories, and school supplies in Angola. Covers the full inventory lifecycle — goods receiving, stock adjustments, physical inventory counts, point-of-sale checkout, dashboards and reports — with role-based access for Administrator, Warehouse Manager, and Salesperson/Cashier profiles. Installable as a PWA.

The Problem

The store was tracking stock and sales through manual, spreadsheet-based processes with no real-time visibility, no audit trail, and no way to prevent overselling or restrict sensitive data (like purchase cost) from staff who shouldn't see it.

Key Features

  • ▸Ledger + cache consistency design: stock quantity is a denormalized cache kept in sync with an append-only movement ledger, avoiding expensive aggregation while preserving a full audit trail
  • ▸Deadlock-safe atomic sales: cart items are sorted before row-locking so concurrent sales sharing products in different order never deadlock; totals are always recalculated server-side, never trusted from the client
  • ▸Role-based data and field scoping enforced through Policies and API Resources — cashiers' queries are scoped to their own sales, purchase cost is hidden from the Salesperson role entirely server-side
  • ▸Immutable audit logging via a dedicated service called explicitly at write points, capturing old/new values, IP, and user-agent with no edit or delete route ever exposed on the log
  • ▸Offline-aware PWA: cache-first for the app shell, network-first with IndexedDB fallback for reads — but offline writes are deliberately blocked to avoid data-integrity risk, a conscious documented trade-off
  • ▸Physical inventory reconciliation: stock counts generate adjustment movements automatically from counted-vs-expected differences
  • ▸Ops-conscious deployment: isolated Nginx site and its own Postgres database on a shared VPS, with automated daily encrypted-auth backups and 14-day rotation

Tech Stack

Laravel 12PHP 8.4PostgreSQL 16Laravel SanctumSpatie PermissionNext.js 15React 19TypeScriptTailwind CSS 4TanStack QueryZustandRecharts

Role

Designed and built: architecture, backend API, frontend SPA/PWA, database schema, deployment, and operations (backups, systemd services) — bringing in contractors when the scope called for it.

Private System

Other projects

MedFreela

MedFreela

Healthcare professional hiring platform

Full-stack platform connecting healthcare institutions with freelance health professionals in Angola. Features a complete hire-to-payment flow: shift scheduling, escrow-based payments via Multicaixa Express, earnings dashboard, and a full administrative panel — all server-rendered and deployed on a Linux VPS.

AngolWifi

AngolWifi

ISP online shop + management system — two apps, one monorepo

Monorepo with two independent Laravel apps: an online shop (Loja) for end-customers to buy plans and vouchers, and a backoffice management system (SGA) for internal operations. They communicate via internal HTTP API — if the shop goes down, the SGA keeps running. Payments via EMIS GPO (Multicaixa Express + Angolan bank card).

Previous projectAMISNext projectMedFreela