ERP and point of sale
Verified with the local frontend and APIStockBeauty
End-to-end operations for beauty salons and spas: sales, cash, inventory, appointments, commissions and reports.

The challenge
The original product combined PHP with CodeIgniter 3 and Angular 11. The operation needed to evolve without losing critical modules such as sales, cash, inventory, purchasing, appointments, clients, staff and commissions.
My contribution
I modernized the solution as a full stack monorepo: Angular 22 standalone frontend and a NestJS 11 API with Prisma and PostgreSQL. I also consolidated tokens, shared components, tests and quality workflows.
Key decisions
- Preserve the legacy route contract so the backend could change without breaking the frontend.
- Use standalone Angular, signals, zoneless change detection and lazy loading for a modern, predictable base.
- Centralize components, tokens and localization in shared monorepo packages.
- Separate operations, inventory, administration and reporting with module-level permissions.
The product in use
Screenshots captured while running the project or reviewing its published version.


Outcomes
- The frontend consumes the modern API while keeping continuity across operating routes.
- Point of sale, appointments, inventory and administration now share one product experience.
- The solution can evolve package by package without coupling the frontend and backend again.
Tech stack
Angular 22NestJS 11Prisma 7PostgreSQL 17Turborepo