Full-stack modernization
Professional work · Serfe
In productionCommercial modernization of a multi-application ERP
I modernized the PHP/MySQL Sales application for phone use and integrated a React/Vite dashboard, extending the existing foundation while keeping its commercial workflows operational.
- PHP
- MySQL
- React
- Vite
- Bootstrap 5
Incremental evolution across active applications
Context
Sales and Intranet supported orders, customers, collections, receipts, settlements, and reporting for a dairy producer. Their server-rendered screens and dependencies had to evolve without interrupting existing commercial processes.
Problem
The Sales application was difficult to use from phones. At the same time, new commercial reporting needed modern visualizations without duplicating rules in the browser or creating conflicts with legacy CSS and backend behavior.
My responsibility
The client defined operational needs and validated deliveries. I implemented the full-stack evolution across responsive UX, reusable components, AJAX endpoints, backend aggregation, query optimization, React/Vite integration, and tests for commercial rules.
Constraints
- Keep orders, customers, collections, and reporting available throughout the modernization
- Coexist with server-rendered PHP, jQuery, global styles, and legacy dependencies
- Introduce React where it added value without moving the source of truth into the frontend
Key decisions
- Migrate the mobile experience progressively instead of rewriting Sales
- Extract reusable tables, modals, and forms to reduce duplication
- Centralize grouping, time-period, and commercial calculations in testable PHP endpoints
- Isolate React/Vite dashboard styles to avoid regressions in the existing application
Implementation
- Adapted orders, customers, collections, current accounts, receipts, and reports for small screens and touch interaction
- Built reusable responsive behavior, improved navigation, and addressed iOS interaction and duplicate-submission issues
- Integrated metadata, tables, history, and customer-product comparisons through React/Vite, PHP endpoints, and optimized queries
Quality and safeguards
- Unit tests for grouping and time-comparison rules
- Parameterized queries and optimizations to avoid unnecessary processing and memory use
- Style isolation and incremental delivery to reduce regression risk across active workflows
Verified status and outcome
- Core Sales workflows now have deployed mobile variants usable from phones
- The React/Vite dashboard runs in production with rules and aggregations centralized in the backend
- The modernization was introduced without a rewrite or interruption to the existing applications
Trade-offs and work in progress
- React remains scoped to a focused module while the rest of the application uses the legacy architecture
- Two interface approaches require explicit boundaries and style isolation
- No adoption or performance-improvement metric is published without confirmed measurements