This job offer is no longer available
About
We are building a custom service quoting and booking system for a multi-location cleaning franchise. This is not an ecommerce website. The platform must function as a dynamic quoting engine that allows customers to select services, calculate totals with business rules applied, schedule appointments, and submit booking requests. The system must be scalable and designed for long term franchise expansion.
This project requires a full stack developer capable of building a structured application using modern technologies and clean architecture principles.
Core Functionality
The system must begin with address entry using Google Maps Places Autocomplete. When a customer enters an address, the system must determine whether that address falls within a serviceable franchise zone. Each franchise location will have either a radius based zone or a polygon based geo fence. Service zones will not overlap. If an address is outside all zones, the system must clearly display that the area is not serviced. If it falls inside a zone, the user must be redirected to the specific franchise quote page.
Each location must have configurable store level settings, including job minimum amount and optional tax rate. The job minimum applies to the entire quote, not to individual services.
Service Catalog Structure
The quoting interface must support dynamic service sections that function as banner based categories. Each section will have a title, banner image, display order, and activation status controlled through an admin panel.
Within each section there will be customizable service rows such as Room, Bath, Entry, Staircase, or square footage based services. Each row must support a unit type defined as either count or square footage. Each row must include a base price which represents the clean service price.
Add ons such as Protect or Deodorize must be configurable and attached to specific service rows. Add ons must have independent quantity inputs, but the add on quantity cannot exceed the clean quantity for that same row. For example, a customer may select four rooms for cleaning but choose protection for only two of those rooms. Both frontend and backend validation must enforce that add on quantities do not exceed base quantities.
The interface must allow both plus and minus controls and direct numeric input. Square footage based rows must allow decimal or configurable step increments.
Quote Calculation Logic
The system must calculate totals dynamically. The subtotal must include all base services and add ons across all sections. If the subtotal does not meet the store level job minimum, the system must automatically apply a job minimum adjustment line item. The quote summary must be displayed in a sticky side panel and update in real time.
No payment processing is required in this phase. This is a quoting and booking system only.
Scheduling and Customer Information
The quote page must include scheduling functionality with date selection and time window selection. It must also collect customer information including name, phone, email, address, and service notes. The full booking experience must exist on a single page.
Upon submission, the system must create a booking record in the database and generate an order number. The structure must be prepared for future integration with GHL to create contacts and opportunities, but that integration is not required in the initial build.
Admin Panel Requirements
An internal admin dashboard is required to manage locations, geo fencing, and catalog structure. The admin must be able to create and edit franchise locations, define serviceable zones, set job minimum values, and activate or deactivate stores.
The admin must also manage service sections, upload banner images, configure service rows, define pricing, configure add ons per service row, and control display order and activation status.
Global settings such as currency, tax rate, and system defaults must also be manageable from the admin interface.
Contract duration of 1 to 3 months.
Mandatory skills: JavaScript, Web Development, API Integration, MySQL,
Languages
- English
Notice for Users
This job was posted by one of our partners. You can view the original job source here.