HangarHub Mx User Guide
v3.4 · Last updated August 28, 2026

1. System Overview

▼ SHOW

HangarHub Mx is the maintenance management system for KP Aviation Services. It covers the full job lifecycle from intake to payment.

Aircraft In→ Work Order→ Estimate→ Invoice→ Payment→ Archive
DashboardLive list of all active aircraft. Open work orders, view history, archive.
Work OrdersFull-page job card with discrepancies, corrective actions, parts, timers, AD compliance, and customer messaging.
EstimatesPre-job pricing documents. Can be sent to the customer and converted to an invoice.
InvoicesFinal billing. Payment method determines delivery: Cash/Check sends PDF only; Card (3.9%) or ACH (1%) sends Valor PayTech payment link. Processing fee shown below tax.
BrokerageTeton AeroWorks aircraft sales module. Listings, buyer profiles, deal pipeline (Kanban), and commission tracking with partner splits.
Admin PanelParts inventory, accounts, rates, manuals, timekeeping, analytics, and billing.

2. Mechanic Accounts

▼ SHOW

Creating an Account

  1. Open Admin → ⚙ Settings → Accounts.
  2. Fill in Username, Display Name, and Password (min 10 characters).
  3. Check Grant admin access for admin-level users.
  4. Click Create Account.

Resetting a Password

In the Accounts tab, delete the account and recreate it with the new password. Work order history and timeclock data are preserved.

⚠ Deleting an account does not delete work order history or time entries.

3. Logging In

▼ SHOW

Navigate to kpaviationservices.com and log in with your username and password. Sessions last approximately 7 days.

📱 On iOS/Safari, if login redirects back to the login screen, try Chrome on iOS or a desktop browser.

4. The Dashboard

▼ SHOW

Topbar Buttons

⋯ MoreDropdown: View Archive, SMS Log, Manuals, Scan QR.
⚙ AdminOpens the Admin Panel (admin users only).
+ Add AircraftRegister a new aircraft into the active job list.

Aircraft Row Actions

Click Open ▼ on any row to expand the action panel:

📝 Update StatusChange status, notes, service type, assigned mechanic.
📋 Work OrderOpen the full work order page in a new tab.
🕐 HistoryView all past work orders for this aircraft.
📱 QR CodeDisplay the customer-facing QR status code.
▲ ▼Reorder aircraft in the list.
📁 ArchiveRemove from active dashboard when job is complete.

Status Badges

IN PROGRESSActive work underway.
GROUNDEDAircraft is not airworthy.
READY FOR PICKUPWork complete, awaiting customer.
PENDING CHECK-INScheduled but not yet received.
OPENJob open, no specific status set.

5. Work Orders

▼ SHOW

Work orders open as full-page documents in a new tab, auto-filled with aircraft and customer info from the dashboard.

Aircraft Fields

The aircraft section includes fields for N-number, make, model, year, serial, engine, Propeller Make, and Propeller Model. Filling in propeller make and model enables propeller AD searches and TCDS lookups.

TCDS (Type Certificate Data Sheets)

When a work order loads, the system automatically fetches TCDS for the airframe, engine, and propeller from the FAA database (2,257 entries). TC number links (e.g. A4CE Rev 51) appear below Relevant Manuals — clicking them opens the FAA document in a new tab.

Topbar Buttons

← DashboardClose the tab and return to the dashboard.
💾 SaveSave all changes. Also auto-saves every 60 seconds. Disabled on archived (closed) work orders — closed records are locked read-only.
⚖ AD ComplianceOpen the AD compliance tracker for this aircraft.
💬 MSGOpen customer messaging thread. Badge shows unread count.
🖨 PrintGenerate a printable work order.
📋 Create EstimateConvert this work order into a billing estimate.
❓ HelpOpens this guide.

Discrepancy / Corrective Action Table

Each row is one discrepancy. Fill in Discrepancy, Corrective Action, Parts Used, and Labor hours.

  • Parts Used — Start typing to search your parts inventory for autocomplete.
  • ▶ Start timer — Runs a live labor timer for that row. Only one timer runs at a time. Hours are written to the labor input automatically.
  • Click + Add line item to add more rows.

Creating an Estimate from a Work Order

Click 📋 Create Estimate in the topbar. The system pulls:

  • Aircraft: reg, make, model, year, serial number
  • Customer: name and phone
  • Service type
  • One labor line per discrepancy row with hours logged (description = corrective action)
  • One parts line per discrepancy row with parts entered

The new estimate appears in Admin → Operations → Billing → Estimates. Open it there to set prices and send to the customer.

💡 Save the work order first to ensure all current data is captured in the estimate.

Archived Work Orders — Read Only

Work orders with status Complete, Closed, Picked Up, or Void open in read-only mode. A yellow banner reads "Archived work order — read only." All fields are greyed and locked, the Save button is hidden, and the 60-second autosave is disabled so closed records cannot be accidentally modified.

To open a specific closed work order directly:

work-order.html?wo=<id>&ac=<aircraft_id>
📝 To access archived work orders from the Admin panel, use the WO Archive tab (Admin → Operations → 📁 WO Archive). Search across all closed work orders by WO number, tail, customer, service type, make, or model.

Return to Service

Point of Contact

The work order includes a Point of Contact block below the customer fields. Use this for business-registered aircraft where the maintenance contact differs from the registered owner. POC data saves with the work order and syncs to the customer database.

From Estimate Badge

When you click 📋 Create Estimate, a blue 📋 From Estimate Q-XXXX badge appears in the work order header linking it to the generated estimate.

The bottom of the work order includes the FAR Part 43 Appendix B certification with signature lines for mechanic and IA inspector.

6. Billing — Estimates & Invoices

▼ SHOW

Access billing via Admin → ✈ Operations → Billing. The tab has two sub-sections: 💳 Invoices and 📋 Estimates.

Estimates

Pre-job pricing documents sent to customers for approval before work begins.

Creating an Estimate

  1. Click + New Estimate.
  2. Enter the N-number and press Tab to auto-fill from the FAA registry.
  3. Select service type and adjust labor hours and rate.
  4. Toggle Travel job or Emergency / AOG as needed.
  5. In the Search items box, type to search Services (⚙) and Parts (📦). Select any item to add it as a line item.
  6. Adjust quantities and prices on each line item.
  7. Click Save Estimate.
💡 Service prices in the search dropdown come directly from your Rates & Fees settings. Update rates there and they update everywhere instantly.

Estimate Actions

EditOpen the estimate editor.
PDFPreview or print the estimate.
📧 SendEmail the estimate to the customer (draft/sent status).
💳 InvoiceConvert to an invoice. Estimate is marked "Converted."
Re-convertCreate a new invoice from a converted estimate (useful after deleting the original invoice).
ResetReset a converted estimate back to "Accepted."
✕ DeletePermanently delete the estimate.

Estimate Statuses

DraftCreated, not yet sent.
SentEmailed to customer.
AcceptedCustomer approved.
DeclinedCustomer declined.
ConvertedAn invoice has been created from this estimate.

Invoices

Final billing documents sent to customers. The delivery method depends on how the customer is paying.

Creating an Invoice

  1. Click + New Invoice, or use the 💳 Invoice button on an estimate to convert it.
  2. Enter N-number (Tab to auto-fill).
  3. Select service type and fill in labor details.
  4. Search and add line items using the Search items box.
  5. Select the Payment Method in the totals box — this determines delivery and fees.
  6. Click Save Invoice.

Payment Methods & Processing Fees

💵 CashNo processing fee. Customer receives a PDF invoice by email. No payment link.
🏦 CheckNo processing fee. Customer receives a PDF invoice by email. No payment link.
💳 Card3.9% processing fee added to the subtotal (labor + parts + tax). Customer receives a Valor PayTech payment link by email.
🔄 ACH1% processing fee added to the subtotal. Customer receives a Valor PayTech payment link by email.

The processing fee appears as a separate line below Sales Tax on the invoice and PDF. The grand total shown is the final amount including all fees.

Sending an Invoice

  1. Click 📤 Send on the invoice row.
  2. Cash or Check: The customer receives a branded email with the PDF invoice attached. The email includes instructions to contact the shop to arrange payment. No Valor payment link is generated.
  3. Card or ACH: The customer receives a branded email with the PDF attached and a Pay Invoice Online button linked to a Valor PayTech secure payment page.
  4. When paid, mark the invoice as ✅ Paid.
📞 Valor payment links (Card/ACH) require the pagesale EPI endpoint to be enabled on your Valor account. Contact Valor support if you receive a D07 error.

Invoice Actions

EditEdit an unpaid, non-voided invoice.
PDFPreview or print the invoice.
📤 SendSend invoice to customer — PDF only (cash/check) or Valor payment link (card/ACH).
Copy LinkCopy the Valor payment URL to clipboard (card/ACH only).
✅ Mark PaidManually mark as paid.
VoidVoid the invoice (cannot be undone).
📋 EstimateCreate a new estimate from this invoice's data.

Converting Between Types

Work Order → 📋 Create Estimate → Estimate → 💳 Invoice → Invoice → 💳 Valor → Paid
  • Work Order → Estimate: Click 📋 Create Estimate in the work order topbar. Pulls all labor, parts, and customer data automatically.
  • Estimate → Invoice: Click 💳 Invoice on any estimate row.
  • Invoice → Estimate: Click 📋 Estimate on any invoice row to create an estimate from invoice data.

Adding Services as Line Items

In the estimate or invoice editor, type in the Search items box. The dropdown shows:

  • Services (⚙) — Labor types from your Parts Inventory with SVC- prefix. Prices reflect your current Rates & Fees.
  • Parts Inventory (📦) — Physical parts with current unit costs.
💡 To add a new labor service: go to Admin → Shop → Parts → + Add Part with a part number starting with "SVC-" (e.g., SVC-PISTON-H).

7. Customer Database

▼ SHOW

HangarHub Mx maintains a customer database that stores contact information for aircraft owners and maintenance contacts. It is accessible under Admin → ✈ Operations → Customers.

Point of Contact & CC Emails

The Add Aircraft panel includes a Point of Contact block (below the owner fields) for business-registered aircraft where the maintenance contact differs from the registered owner. A CC Emails field lets you add additional recipients for estimates and invoices. Both are stored on the customer record and auto-fill on future interactions.

💡 The system checks for duplicate N-numbers and warns if a tail is already in the active queue.

Auto-Fill on Aircraft Add

When you add a new aircraft, the system links your customer database to the FAA registry lookup:

  1. Type the N-number and press Tab — FAA fills the owner name (e.g., "Skyriders, Inc").
  2. The system immediately searches your customer database for that owner name.
  3. If a match is found, phone and email auto-fill from your customer record.
  4. If no match is found, fill in the phone and email manually — they are automatically saved to the customer database when you click Add Aircraft.

You can also type directly in the Owner name field to search your customer database. A dropdown appears showing matching customers — click one to fill name, phone, and email at once.

💡 The first time a customer brings in a plane, enter their contact info once. Every aircraft after that auto-fills.

Managing Customers

Go to Admin → ✈ Operations → Customers to view and manage your full customer list.

SearchSearch by name, phone number, or email address.
+ Add CustomerManually add a customer with name, phone, email, address, city, and notes.
EditUpdate any customer's contact information.
✕ DeletePermanently remove a customer record (admin only).

Customer Fields

Name *Customer or company name (required). Should match the FAA registered owner name exactly for auto-fill to work.
Phone *Primary contact phone number (required).
EmailEmail address — used to pre-fill estimate and invoice recipient.
AddressStreet address.
City, State, ZipCity/state/zip.
NotesInternal notes (e.g., "call cell only", "fleet account").
💡 Customers are saved automatically when you add an aircraft. You never need to manually add a customer if you always check in aircraft through the dashboard.

Point of Contact

The customer edit modal includes a Point of Contact block (Contact Name, Title, Phone, Email) and a CC Emails field. POC information auto-fills on all estimates, invoices, and work orders associated with that customer.

Customer Aircraft History

In the Customers tab, each customer row has a ✈ Aircraft button. Click it to expand an inline table showing every aircraft ever associated with that customer — active and archived — with N-number, aircraft type, service type, number of work orders, last service date, and status.

Auto-Fill on Estimates & Invoices

When creating a new estimate or invoice, type the N-number and press Tab. After the FAA fills the owner name, the system also searches your customer database and auto-fills phone and email if a match is found.

8. Service Agreements

▼ SHOW

Service Agreements are legally binding authorization documents that customers sign before maintenance begins. They can be signed in-shop on a tablet or remotely via an emailed link. All signed agreements are stored permanently in HangarHub and accessible anytime.

Creating an Agreement

  1. Go to Admin → Operations → 📋 Agreements
  2. Click + New Agreement
  3. Type the N-number and click 🔍 Look Up — aircraft make, model, year, serial, and owner info auto-fill from your records or the FAA registry. Customer phone, email, and address auto-fill from your customer database if a match is found.
  4. Fill in Known Squawks and Maintenance Requested
  5. Click 💾 Save — the agreement is assigned a number (e.g. SA-2026-0001) and stored in the database
💡 Switching N-numbers always clears and re-populates all fields with fresh data.

In-Shop Signing (Tablet)

  1. After saving, click 📄 PDF on the agreement in the list
  2. The agreement opens fullscreen inside HangarHub
  3. Click ✍ Customer Sign — a full white signing canvas appears
  4. Customer draws their signature with finger or stylus
  5. Click ✓ Save — signature is saved to the database
  6. Click ✍ Tech Sign and repeat for the technician signature
  7. Click 🖨 Print / Save as PDF to print or save the completed document
📝 Both signatures embed into the PDF as images. The agreement status updates to Signed in the list automatically.

Remote Signing (Email Link)

  1. Open the agreement and click 📧 Email Signing Link
  2. A 72-hour signing link is emailed to the customer
  3. Customer opens the link on any device — phone, tablet, or desktop
  4. They read the full agreement, draw their signature, and click Submit Signature
  5. You receive an email notification the moment they sign
  6. The Agreements tab auto-refreshes every 30 seconds — the status will update to Signed within half a minute
💡 The signing link opens on the KP Aviation backend server, not the main website. Make sure APP_URL is set in Render environment variables.

Agreement Verbiage

All agreements include the following legal clauses:

  • Authorization to Perform Maintenance — owner authorization and agent certification
  • Pre- and Post-Maintenance Inspections — visual inspection and run-ups before and after work
  • Discovery of Additional Discrepancies — 48-hour customer response requirement
  • Safety-of-Flight Discrepancies — corrected without prior approval; customer notified; costs on final invoice
  • Pre-Purchase Inspection — advisory only; logbooks, compression test, corrosion, controls; 6-8 hours; optional oil change and oil analysis; safety-of-flight repairs are current owner's responsibility; non-safety repairs at buyer/seller discretion
  • Right to Decline Maintenance — company may stop work at any time
  • Airworthiness Determination — not guaranteed
  • Parts Authorization & Credit Card Requirement — card on file required for parts ≥$500; auto-charged with notification
  • Payment Terms — due within 10 days; 10% late fee; collection costs including attorney's fees
  • Mechanic's Lien — lien held on aircraft for all charges
  • Abandoned Aircraft — 60-day limit; daily storage fees may apply
  • Limitation of Liability — capped at amount paid; no consequential damages
  • Governing Law — Idaho law; Bonneville County jurisdiction

Managing Agreements

View all agreementsAdmin → Operations → 📋 Agreements
Filter by statusStatus dropdown (All / Draft / Signed / Archived)
Search agreementsSearch box — matches agreement number, customer name, aircraft
Open for editingClick Open on any row
Generate PDFClick 📄 PDF on any row
Delete agreementClick ✕ on any row — confirmation required
Auto-refreshList refreshes every 30 seconds while Agreements tab is active

Agreement Statuses

DraftCreated but not yet signed
SignedCustomer signature captured (in-shop or remote)
ArchivedManually archived for record-keeping

9. Automated Emails

▼ SHOW

HangarHub Mx sends several automated emails. All use the Gmail account configured in your Render environment variables.

Estimate sentWhen you click 📧 Send on an estimate, you receive an internal notification at kpaviationmx@gmail.com with customer name, aircraft, and total.
Invoice sentWhen you click 💳 Send on an invoice: (1) the customer receives a branded email with the full invoice PDF attached and a single Pay Invoice — $X.XX button, and (2) you receive an internal notification with customer name, aircraft, and total. The pay button links to the payment method selector page where the customer chooses Card or Bank Transfer.
Invoice paid — Google ReviewWhen an invoice is marked paid (manually or via Valor polling), the customer receives a one-time Google Review request email with your review link. Repeat customers are skipped automatically.
Agreement signing link sentWhen you click 📧 Email Signing Link on a Service Agreement, the customer receives an email with the 72-hour signing link, and you receive an internal notification confirming it was sent.
Agreement signedThe moment a customer submits their signature (in-shop or remote), you receive an internal notification. The Agreements tab also auto-refreshes every 30 seconds, so the status updates to Signed without waiting on the email.
Nightly backupAfter each nightly backup completes, you receive a confirmation email with the filename, size, and status (success or failure).

Stripe Payment Auto-Check

HangarHub automatically checks all sent invoices against Stripe every 5 minutes while the Billing tab is open. When a customer pays, the invoice status updates to Paid automatically and the Google Review email fires.

You can also click 🔄 Check Payments in the Invoices tab header to trigger an immediate check.

💡 If you mark an invoice paid manually, the Google Review email still fires — unless that customer already received one.

Payment Method Selector Page

Instead of two separate Card and ACH links in the email, customers land on a hosted payment page at /donate where they choose their payment method. The page shows:

  • Invoice summary (customer, aircraft, total)
  • Card and Bank Transfer (ACH) options with live fee calculations
  • Round-up and donation options if Patriot PAWS is enabled (see below)
  • A secure Stripe checkout button

Patriot PAWS Donations

The payment page can display an optional Patriot PAWS Service Dogs donation section. Customers can choose a round-up (to the nearest dollar after the processing fee), $5, $10, $25, or a custom amount. Toggled with a single line in src/routes/patriotpaws.js:

const SHOW_PATRIOT_PAWS = false; // change to true to enable

Donation totals and pending remittance appear on the Analytics tab under 🐾 Patriot PAWS Donations.

10. Customer Messaging

▼ SHOW

Each aircraft has a customer messaging thread. Access it from the work order via 💬 MSG.

  • Messages can be marked Internal (mechanics only, not visible to customer).
  • Customers receive a unique link to view status and reply.
  • A red badge on the MSG button shows unread messages. Page polls every 20 seconds.
  • Photos can be attached.
  • Use Copy Link in the MSG panel to share the customer portal link via text or email.

11. AD Compliance

▼ SHOW

Track airworthiness directive compliance per aircraft. Access from the work order via ⚖ AD Compliance. The page opens as a full-screen panel inside the app.

Loading ADs

  • Click 🔍 Load ADs for This Aircraft to search both the FAA AD database (20,067 ADs) and the Federal Register simultaneously. Results are merged and deduplicated automatically.
  • ADs are matched by airframe make/model, engine, and propeller. Fill in all three on the work order for complete results.
  • Use the AD number or keyword search box to look up a specific AD manually.

The AD Picker

  • Each result shows the AD subject (description) as the headline, with the AD number, category badge, and ✓ Current or 🕑 Historical status clearly labeled.
  • The picker header shows a breakdown: e.g. 42 results — 28 Airframe, 14 Engine (6 historical).
  • Select the ADs that apply to this aircraft and click Add Selected.

AD Cards

  • Each AD card shows the subject, AD number, category, Current/Historical status, and effective date.
  • Set compliance status: Open, Complied, N/A, or Deferred.
  • Enter method of compliance, date, hours at completion, next due, and internal notes.
  • Check Recurring for ADs requiring repetitive action. Check Historical / SSED as appropriate.

Omit vs. Remove

  • ✕ Omit — Hides the AD from the main list. It remains in the database and can be restored by checking Show Omitted and clicking ↩ Restore.
  • 🗑 Remove — Removes the AD from the visible list permanently for this work order. The AD record is never deleted from the master FAA database. Save after removing to make it permanent.
  • Clear AD List — Removes all ADs from the current view. Does not delete anything from the database.

TCDS (Type Certificate Data Sheets)

TCDS links appear on the work order itself (in the Aircraft section, below Relevant Manuals). Clicking a TC number (e.g. A4CE Rev 51) opens the FAA document in a new tab. The TCDS database covers 2,257 entries for aircraft, engines, and propellers.

Printing

Click 🖨 Print AD List for a formatted 14 CFR Part 39 compliance report.

⚠ Always verify compliance requirements against the original AD text. HangarHub AD data is sourced from the FAA AD database and Federal Register — neither the master database nor any per-aircraft records are ever automatically deleted.

12. SMS Notifications

▼ SHOW

Customers receive automated SMS messages when their aircraft status changes. Powered by Twilio from (208) 980-2553.

  • Fires automatically on every status update.
  • View all sent messages in ⋯ More → SMS Log.
  • Customer replies appear in the aircraft messaging thread.

13. Manual Library

▼ SHOW

Access the full manual library from ⋯ More → Manuals on the dashboard.

  • On a work order, the system auto-matches the aircraft make/model and engine and shows relevant manuals automatically.
  • Organized by Airframe, Engine, and Component.
  • Admins can add custom manuals (Google Drive links, etc.) in Admin → Shop → Manuals.

14. QR Code System

▼ SHOW

Each aircraft has a unique QR code for customer status lookup.

  • Print it and attach it to the aircraft or paperwork.
  • Customers scan it to view real-time status on their device.
  • From dashboard: Open ▼ → 📱 QR Code.
  • Scan any aircraft's QR from the dashboard via ⋯ More → Scan QR.

15. Timekeeping

▼ SHOW

Clock In / Out / Break

The timeclock widget is in the bottom-right corner of the dashboard.

  • Clock In — Start your shift.
  • Start/End Break — Break time is tracked and deducted.
  • Clock Out — End your shift.

My Timesheet

Click My Timesheet to view your weekly hours. Multiple clock-in/out events per day all show, with a └ indent for subsequent entries on the same day. Navigate weeks with ← →. Regular and overtime hours are summarized at the bottom.

Admin Timekeeping

In Admin → ⚙ Settings → Timekeeping, admins can view all mechanic time entries, make corrections, and approve weekly timesheets.

16. Apprentice Tracker

▼ SHOW

Track apprentice experience hours by ATA chapter for A&P certification. Accessible from the timeclock area on the dashboard.

  • Log entries by aircraft, ATA chapter, hours, and description of work performed.
  • Supervising mechanic verifies each entry.
  • Progress bars show completion toward FAA hour targets per ATA chapter.

In Admin → ⚙ Settings → Apprentice, admins can verify hours, lock entries, and generate the experience letter PDF.

17. Analytics & Sales Tax

▼ SHOW

Access via Admin → ✈ Operations → Analytics. The tab covers shop performance stats and financial reporting, including sales tax.

Shop Analytics

Use the toolbar at the top to set the reporting window: YTD, 90 Days, 30 Days, All Time, or a custom From/To range. All stats and charts below update together for whichever range is selected. Click ↻ Refresh to reload everything for the current range.

Summary statsJobs completed, total labor hours, avg hours/job, unique aircraft, unique customers.
Revenue statsTotal invoiced, labor (SVC) revenue, inventory revenue, standalone invoice revenue, invoices issued.
Aircraft by MonthBar chart of aircraft checked in per month.
Jobs by Service TypeCount and average/total labor hours per service type.
Labor Hours by MechanicTotal and average hours logged per mechanic.
Most Common AircraftTable of jobs by make/model with average and total hours.
Labor Hours by ServiceAverage, min, and max hours per service type — useful for estimating turnaround.
Most Used PartsTop 15 parts pulled from work order records, by frequency.
Inventory Items InvoicedTop 20 inventory line items by revenue across all sent, paid, and archived invoices.
🐾 Patriot PAWS DonationsTotal collected, pending remittance, and per-invoice breakdown. Only appears when Patriot PAWS is enabled.

Sales Tax Report

Always-open card below the revenue stats, showing sales tax collected for a date range. It has its own date controls, independent of the Shop Analytics toolbar above, so you can pull a specific filing quarter without disturbing the rest of the dashboard.

  • Loads automatically to YTD the first time you open the Analytics tab, and reloads with whatever range is currently set whenever you hit ↻ Refresh.
  • Use the From / To date fields and Calculate for a custom range, or the YTD / Q1 / Q2 / Q3 / Q4 preset buttons for standard filing periods.
  • Pulls from paid, partially paid, and archived invoices only — this reflects tax actually collected, not tax invoiced but still unpaid.
Taxable RevenueSum of non-labor line items only (parts/inventory/custom). Labor and card/ACH processing fees are never taxed, so they're excluded here even though they're part of the invoice total.
Sales Tax Collected (6%)The actual tax amount collected across matching invoices in the range.
Total Revenue (inc. tax)Full invoice total — labor, parts, tax, and any processing fee — for matching invoices in the range.
💡 For quarterly sales tax filing, use the Q1–Q4 preset buttons rather than typing custom dates — they use calendar-quarter boundaries.

18. Admin Panel

▼ SHOW

Open via ⚙ Admin in the dashboard topbar (admin users only). The panel has three dropdown groups:

🔧 Shop

Parts Inventory

  • Add, edit, and delete parts. Fields are editable inline.
  • Parts with a SVC- prefix are shop services — they show with a ⚙ icon and appear in estimate/invoice line item search.
  • On first load, the system automatically seeds your standard services (Piston-Hangar, Piston-Mobile, Turboprop, Turbine, Emergency, Prop Balancing) into parts using your current Rates & Fees prices.
  • Import/export parts via CSV.
💡 Update a service price: go to Rates & Fees and save. The seed runs once — to update an SVC- part's cost, edit it directly in Parts Inventory.

Manuals — Add custom manual links for specific aircraft/engine models.

✈ Operations

Billing — Estimates and Invoices. See Section 6 for full details.

Customers — Full customer database. Search, add, edit, and delete customer contact records. Auto-populated when aircraft are checked in. See Section 7 for full details.

Analytics — Shop performance stats, charts, and the Sales Tax Report. See Section 17 for full details.

WO Archive — Global search across all closed work orders (Complete, Closed, Picked Up, Void). Search by WO number, tail, customer name, service type, make, or model. Results show date, aircraft, status badge, and labor hours. Click 👁 View to open the work order read-only in a new tab.

⚙ Settings

Accounts — Create accounts with username, display name, email, phone, and password. Use the Edit button to update any account. Toggle Admin access. Delete accounts. Email and phone on accounts are used for time-off request notifications (coming soon).

Rates & Fees

  • Set hourly rates for Piston (Hangar/Mobile), Turboprop (Hangar/Mobile), Turbine (Hangar/Mobile).
  • Set Emergency/AOG rate and mileage rate.
  • Rates update in estimate/invoice service searches immediately on save.

Display — Configure the public shop display screen.

Timekeeping — View, edit, and approve mechanic time entries.

Apprentice — Review and verify apprentice log entries. Generate experience letters.

AD Database — Rebuild the FAA AD database from updated Excel files. When the FAA releases a new AD export, download the ZIP from drs.faa.gov, convert the two Access files to Excel, then use Choose File to select both files and click 🔄 Rebuild AD Database. Click 🔍 Check Status to verify the database loaded correctly.

19. Archiving Aircraft

▼ SHOW

When a job is complete and the aircraft picked up, archive it to clear it from the active dashboard.

  1. Click Open ▼ on the aircraft row.
  2. Click 📁 Archive.
  3. Confirm the prompt.

All work order history is preserved. View archived aircraft from ⋯ More → View Archive. Click Restore to return an aircraft to the active list.

20. Brokerage Module

▼ SHOW

The brokerage module supports Teton AeroWorks aircraft sales operations, fully integrated into HangarHub Mx. Access via 🤝 Brokerage in the admin panel header.

Listings

Admin → 🤝 Brokerage → Listings → + New Listing

  • Type the N-number — Make, Model, Year, Engine, Serial, and Seller Name auto-fill from the FAA registry.
  • If the seller is already in your customer database, their phone and email auto-fill too.
  • Set asking price, commission rate (default 8%), description, and status.
  • Statuses: Active, Under Contract, Sold, Withdrawn.
  • Click 📷 Photos to upload photos. Click + Deal to create a pipeline deal.

Photo Manager

  • Click 📷 Photos on any listing row to open the photo manager.
  • Drag and drop photos or click the upload zone — JPG, PNG, WEBP, max 15MB each, up to 30 per listing.
  • The first photo uploaded automatically becomes the cover photo shown on the public portal.
  • Click ⭐ Set Cover on any photo to make it the listing thumbnail.
  • Click 🗑 Delete to remove a photo from Cloudinary and the database. If the cover is deleted, the next photo becomes cover automatically.

Buyers

Admin → 🤝 Brokerage → Buyers → + Add Buyer

  • Store budget range, pilot certificate level, aircraft wishlist/preferences, phone, and email.
  • Search buyers by name, phone, or email using the search box.
  • Buyers are selected from a dropdown when creating or editing a deal.

Deal Pipeline

Admin → 🤝 Brokerage → Pipeline

  • Five-stage Kanban board: Inquiry → Showing → Offer Made → Under Contract → Closed.
  • Click any deal card to open the detail modal — assign or change buyer, update stage, enter offer amount, add notes.
  • Click ✔ Mark Closed to close the deal, mark the listing as Sold, and create a commission record automatically.

Commissions

Admin → 🤝 Brokerage → Commissions

  • Each closed deal generates a commission record showing sale price and calculated commission.
  • Click Edit to enter the actual sale price, commission amount, partner names, and split percentages.
  • The split calculator shows each partner's dollar amount in real time — total must equal 100%.
  • Set status to Pending or Paid to track distributions.
📋 The brokerage module is a separate business entity (Teton AeroWorks, LLC). Aircraft maintenance work flows through KP Aviation Services, LLC via a management services agreement.

Public Buyer Portal

  • listings.html — public aircraft listings page. Shows all Active listings as photo cards with search and aircraft type filter (Piston/Turboprop/Turbine).
  • listing-detail.html — individual aircraft page with full photo gallery (click any photo for lightbox, use arrow keys to navigate), all specs, description, and a contact form.
  • The contact form emails kpaviationmx@gmail.com and automatically creates a buyer record in HangarHub.
  • No login required — fully public. Phone: (208) 557-3709. Hours: Mon–Fri 8:30AM–5PM MT.

21. Quick Reference

▼ SHOW
Add aircraftDashboard → + Add Aircraft
Open work orderDashboard → Open ▼ → Work Order
Create estimate from WOWork Order topbar → 📋 Create Estimate
Create estimate manuallyAdmin → Operations → Billing → Estimates → + New Estimate
Convert estimate to invoiceBilling → Estimates → 💳 Invoice button
Send invoice (cash/check)Billing → Invoices → 📤 Send → emails PDF, no payment link
Send invoice (card/ACH)Billing → Invoices → 📤 Send → emails PDF + Valor payment link
Set payment method on invoiceInvoice editor → totals box → Payment Method dropdown
Add service line itemEstimate/Invoice editor → Search items box → select ⚙ service
Update labor ratesAdmin → Settings → Rates & Fees → Save
Add parts to inventoryAdmin → Shop → Parts → + Add Part
Add shop serviceAdmin → Shop → Parts → + Add Part with SVC- prefix
View customer databaseAdmin → Operations → Customers
Add customer manuallyAdmin → Operations → Customers → + Add Customer
Auto-fill customer on addAdd Aircraft → type N-number → Tab (auto-fills from customer DB)
Archive aircraftDashboard → Open ▼ → 📁 Archive
View archiveDashboard → ⋯ More → View Archive
Clock in/outDashboard → Timeclock widget (bottom right)
View my timesheetTimeclock widget → My Timesheet
View analyticsAdmin → Operations → Analytics
View sales tax reportAdmin → Operations → Analytics → 🧾 Sales Tax Report card
Add mechanic accountAdmin → Settings → Accounts
Message customerWork Order → 💬 MSG
Print work orderWork Order → 🖨 Print
View AD complianceWork Order → ⚖ AD Compliance
Load ADs for aircraftAD Compliance → 🔍 Load ADs for This Aircraft
View TCDS for aircraftWork Order → Aircraft section → TC number link
Omit an ADAD Compliance → AD card → ✕ Omit
Remove an AD from listAD Compliance → AD card → 🗑 Remove (then Save)
Restore omitted ADAD Compliance → Show Omitted → ↩ Restore
New brokerage listingAdmin → 🤝 Brokerage → Listings → + New Listing → type N-number
Upload listing photosBrokerage → Listings → 📷 Photos button on listing row
Set cover photoPhoto manager → ⭐ Set Cover on any photo
Add a buyerAdmin → 🤝 Brokerage → Buyers → + Add Buyer
Create a dealBrokerage → Listings → + Deal button on listing row
View deal pipelineAdmin → 🤝 Brokerage → Pipeline
Assign buyer to dealPipeline → click deal card → Buyer dropdown → Save
Close a dealPipeline → click deal card → ✔ Mark Closed
View commissionsAdmin → 🤝 Brokerage → Commissions
Edit commission splitCommissions → Edit → enter partner names and percentages
Scan aircraft QRDashboard → ⋯ More → Scan QR
View archived work ordersAdmin → Operations → 📁 WO Archive
Search closed work ordersWO Archive → type WO #, tail, customer, or service → Enter
Open a specific closed WOwork-order.html?wo=<id>&ac=<aircraft_id>
Create a service agreementAdmin → Operations → 📝 Agreements → + New Agreement
Look up N-number on agreementEnter N-number → 🔍 Look Up button (auto-fills from your records or FAA)
Sign agreement in-shop📄 PDF → ✒ Customer Sign or Tech Sign → draw → ✓ Save
Send remote signing linkOpen agreement → 📧 Email Signing Link (72-hour link)
Check if customer signed remotelyAgreements tab auto-refreshes every 30 sec; status changes to Signed
Delete an agreementAgreements list → ✕ button on row
Check invoice paymentsBilling → Invoices → 🔄 Check Payments
Edit mechanic accountAdmin → ⚙ Settings → Accounts → Edit button
Add Point of ContactAdd Aircraft panel, or estimate/invoice editor → POC block below customer fields
Add CC emailsAdd Aircraft panel, or estimate/invoice editor, or Customer edit modal
Install as desktop appOpen in Chrome → address bar install icon ⇒ Install
Unpaid invoices onlyBilling → Invoices → Unpaid Only button
View customer aircraft historyAdmin → Operations → Customers → ✈ Aircraft button
Parts usage analyticsAdmin → Operations → Analytics → Most Used Parts chart

22. System Information

▼ SHOW
Websitekpaviationservices.com (Namecheap shared hosting)
PWA / AppInstallable on Windows, Mac, iPad, Android — no app store required
BackendNode.js/Express — kp-aviation-backend.onrender.com
DatabaseNeon PostgreSQL
SMSTwilio — (208) 980-2553
PaymentsStripe (2.9%+$0.30 card, 0.8% ACH capped at $5, 2.7%+$0.05 in-person)
Photo storageCloudinary
Supportkpaviationmx@gmail.com
Shop phone(208) 557-3709
Address1940 International Way, Idaho Falls, ID 83402
🔧 Backend auto-deploy is OFF on Render. After pushing code changes, go to Render → Manual Deploy.

Install as an App (PWA)

Windows / MacOpen in Chrome → click install icon in address bar ⇒ Install
iPad / iPhoneSafari → Share button → Add to Home Screen
AndroidChrome → three dots menu → Add to Home Screen

Runs full screen with no browser bar. No app store required.