Skip to content
← Back to projects
Verified with the local frontend and API

StockBeauty

End-to-end operations for beauty salons and spas: sales, cash, inventory, appointments, commissions and reports.

StockBeauty dashboard with indicators, upcoming appointments and quick actions
The dashboard brings period indicators, upcoming appointments and daily actions into one view.

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.

StockBeauty product catalog with stock, cost and retail prices
Paginated inventory with stock, costs, prices, categories and maintenance actions.
StockBeauty report center
Sales, profit, productivity and appointment reports organized around operational questions.

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