BuildRight Contractors Portal
Admin Guide
Complete walkthrough of every portal module for the business owner
Last updated: 2026-07-12

Logging In

There are two portals accessible from the public site navigation bar (top right):

ButtonWhere It GoesWho Uses It
Admin Login (muted/grey)/#loginBusiness owner / admin only
Team Login (orange, bold)/#employee-loginField staff / employees

At /#login, enter your admin password. The default password is Admin@2026 — change it in Settings after first login. On successful login the page transitions directly into the admin portal.

Note: You can navigate directly to https://buildright.sonandigital.com/#login without going through the public site first.

Dashboard

The first screen after login. Shows live metric cards summarising the current state of the business:

  • Open service requests (new/unactioned)
  • Upcoming appointments (next 7 days)
  • Active projects
  • Unpaid invoices total

Use the sidebar to navigate to any module. The sidebar stays visible on all admin pages.

Service Requests

All quote requests submitted via the public "Get a Quote" form land here. Each request shows the contact name, phone, email, service type, service address, preferred date, and any notes the customer included.

Status workflow:

StatusMeaning
NewJust submitted, not yet actioned
ContactedYou have reached out to the customer
ScheduledAppointment or job is booked
CompletedWork finished
CancelledRequest cancelled by customer or admin

To update status, click on a request and change the status dropdown. You can also delete stale requests.

Engagements (Appointments)

Manage on-site visits, consultations, and follow-ups. Each engagement record contains:

  • Title / description
  • Client (linked from Clients list)
  • Service type
  • Date, time, and duration
  • Site address
  • Assigned contractor
  • Status (Scheduled / In Progress / Completed / Cancelled / No-Show)
  • Recurring settings (see below)
  • Notes

Recurring Engagements

Check the Recurring Engagement checkbox to enable repeat scheduling. Once checked, two additional fields appear:

  • Frequency — Daily, Weekly, Bi-Weekly, Monthly, or Custom Weekdays
  • End Date (optional) — stop repeating after this date

When Custom Weekdays is selected, a day-picker appears showing Sun Mon Tue Wed Thu Fri Sat buttons. Toggle the days on which the engagement repeats. Selected days highlight in the primary brand color.

Recurring engagements are tagged with a orange "↻ Weekly" (or the chosen frequency) badge in the engagements list for quick identification.

Use the + New Engagement button to create, or click Edit on an existing record to modify. Deleting removes the engagement record (confirm prompt appears first).

Projects (Jobs)

The Jobs module is the core of daily operations. Each job record tracks:

  • Client (linked from Clients)
  • Service type
  • Service address
  • Scheduled date and time
  • Labor cost (enter in dollars — stored as cents internally)
  • Material cost (enter in dollars — stored as cents internally)
  • Status
  • Recurrence (none / weekly / biweekly / monthly)
  • Notes

Status options: Scheduled → In Progress → Completed → Cancelled

Jobs appear in the Calendar view (shown in purple). Employees assigned to a job can see it in the Employee Portal and update its status from the field.

Clients

A directory of all customers. Each client record holds: name, email, phone, and address. Click a client to view their detail page, which shows linked jobs, estimates, and invoices for that client — a full history at a glance.

To add a client: click + New Client and fill in the form. Clients can also be created inline when creating a new job.

Estimates

Issue formal cost estimates before work begins. Each estimate contains:

  • Client
  • Line items (description + unit cost + quantity) — stored as JSON
  • Total (auto-calculated, stored as total_cents)
  • Status
  • Notes

Status workflow: Draft → Sent → Accepted → Declined

Estimates start as Draft. Mark as Sent once you have shared it with the client. Update to Accepted or Declined based on client response.

Invoices

Bill clients after work is complete. Each invoice contains:

  • Client
  • Line items (description + unit cost + quantity) — stored as JSON
  • Amount total (stored as amount_cents)
  • Status
  • Notes

Status workflow: Draft → Sent → Paid → Overdue

Important: Estimates use total_cents; invoices use amount_cents. These are separate fields — do not confuse them when referencing the database directly.

Calendar

A monthly calendar view showing all scheduled activity:

  • Blue — Appointments
  • Purple — Projects / Jobs

Click any event to view or edit the record. Navigate months using the previous/next arrows. The calendar is read-only from this view — editing is done in the respective module.

Reports

Summary statistics for the business. Shows aggregated data including total jobs completed, revenue from invoices, outstanding receivables, and service request volume. Use this module to get a periodic snapshot of business performance.

Team (Employees)

Manage your field staff. Each employee record contains: name, phone number, and a 4-digit PIN (hashed in the database).

Actions:

  • Add employee — Click + Add Employee, enter name, phone, and set a 4-digit PIN. The employee uses this PIN to log in to the Employee Portal.
  • Edit employee — Update name or phone. Optionally reset the PIN.
  • Delete employee — Removes the employee from the system. They will no longer be able to log in.
PIN management: PINs are stored as hashed values (PBKDF2-SHA256). You cannot view a PIN after it is set — if an employee forgets their PIN, reset it here and give them the new one.

Settings

Configure your business profile. All settings are saved to the D1 database and applied immediately.

SettingDescription
Business NameDisplayed in the nav bar and public hero section
Business PhoneShown on the public site
Business EmailShown on the public site
Business AddressShown on the public site
Service TypesList of services offered (JSON array); populates the quote form dropdown
Business LogoUpload an image file — stored as base64 in the database. Displays large (~200px) on the left side of the public site hero section. When no logo is set, text fills the full hero width.
Admin PasswordChange your login password. Enter current password and new password to confirm.

Signing Out

Click the Sign Out button in the admin sidebar (bottom). The page reloads and returns to the public site — no stale session state is retained. To return to the admin portal, click Admin Login in the nav bar.