Freelance
Freelance systems: a legacy replacement and a multi-hotel PMS
The problem
Two client projects. One replaced a tourist-village management system more than 20 years old. The other was a multi-hotel property management system, with audit logging and two-way sync with a channel manager.
The decision
I gathered requirements with clients who are not technical, through user stories, a terminology spec and feedback rounds in Arabic and English.
The village system became an Express and TypeScript app on PostgreSQL with a React frontend, covering bookings, owner and renter accounting, services, invoices and occupancy reports. For the hotel system I built two-way sync with a channel manager on RabbitMQ, with role-based access scoped to each hotel and audit logging.
The result
The new village system replaced the legacy one, and I supported it after launch. I added trigram and composite indexes and server-side pagination, tested with 200+ generated records per entity. I documented the systems (ERD, use cases, a gap report and spec-driven plans) and set up Docker, Caddy and Terraform deployment.