Contents
Logging In
There are two portals accessible from the public site navigation bar (top right):
| Button | Where It Goes | Who Uses It |
|---|---|---|
| Admin Login (muted/grey) | /#login | Business owner / admin only |
| Team Login (orange, bold) | /#employee-login | Field 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.
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:
| Status | Meaning |
|---|---|
| New | Just submitted, not yet actioned |
| Contacted | You have reached out to the customer |
| Scheduled | Appointment or job is booked |
| Completed | Work finished |
| Cancelled | Request 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
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.
Settings
Configure your business profile. All settings are saved to the D1 database and applied immediately.
| Setting | Description |
|---|---|
| Business Name | Displayed in the nav bar and public hero section |
| Business Phone | Shown on the public site |
| Business Email | Shown on the public site |
| Business Address | Shown on the public site |
| Service Types | List of services offered (JSON array); populates the quote form dropdown |
| Business Logo | Upload 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 Password | Change 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.