Native operations and business-management app for gardening and maintenance teams. GardenOps brings scheduling, customers, field work, projects, collaborators, expenses, invoicing, collections, and reporting into one adaptive SwiftUI application for iPhone, iPad, and Mac.
Portfolio build: the repository contains application source code and synthetic test material only. The published cover uses placeholder records and does not contain real customer or company data.
- Repository: github.com/arshial/gardenops
- Distribution: source build through Xcode; no public App Store release
- Supported platforms: iPhone, iPad, and Mac
- It turns a broad set of real operational workflows into one coherent native product instead of a collection of disconnected forms.
- It keeps the core experience local-first while supporting backup, restore, device transfer, and encrypted peer-to-peer synchronization.
- It models financial state carefully across jobs, project deposits, invoices, credit notes, payments, supplier bills, collaborator compensation, and receivables.
- Adaptive SwiftUI navigation with a tab-based iPhone experience and sidebar layouts for iPad and Mac
- SwiftData domain model spanning operational, financial, planning, and configuration records
- Bidirectional encrypted synchronization over the local Wi-Fi network with merge previews, safety backups, and last-modified conflict handling
- JSON backup and restore plus CSV and macOS Numbers import workflows
- Invoice, account, occasional-receipt, and credit-note generation with shareable PDFs
- Historical pricing snapshots so later rate changes do not rewrite completed work
- Reconciliation and migration actors for legacy payments, invoice links, deletion safety, and synchronized records
- Regression tests around backup snapshots, invoice-item migration, legacy collections, and record deletion
- Calendar for scheduled jobs and recurring maintenance
- Customer and collaborator management
- Jobs with status tracking, labor, materials, equipment, expenses, and margin calculation
- Fixed-price or calculated-price work based on labor, costs, and equipment
- Project estimates, planned and actual costs, deposits, remaining balances, and delivery states
- Annual maintenance plans that can be converted into operational work
- Invoices, non-fiscal accounts, occasional-service receipts, and linked credit notes
- Annual numbering, tax handling where applicable, delivery status, and PDF sharing
- Payment validation with overpayment prevention and automatic document-state updates
- Receivables and overdue-document queues
- Supplier bills, due dates, business costs, and collaborator compensation
- Monthly reporting, six-month trends, revenue, costs, margin, and annual tax projections
- Local SwiftData store with no required backend or account
- Full JSON backup and restore
- AirDrop and Files transfer between devices
- Encrypted synchronization on the same Wi-Fi network
- CSV import and direct
.numbersimport on macOS - Safety-first merge previews and backup creation before synchronized changes
Adaptive SwiftUI interface
|
Feature views
|
Domain services and migration actors
/ | \
SwiftData PDF / imports Local-network sync
| |
Local store Encrypted peer transfer
- UI: SwiftUI with platform-adaptive navigation and native sharing
- Persistence: SwiftData with a local on-device store
- Concurrency: Swift concurrency and model actors for maintenance operations
- Synchronization: Network framework peer discovery and encrypted record transfer
- Documents: Core Graphics PDF generation, JSON backup, CSV import, and Numbers import on macOS
- System integration: UserNotifications, AirDrop, Files, and share sheets
- Testing: XCTest regression coverage for persistence-critical workflows
/GardenOps/Appapplication entry point and model-container setup/GardenOps/Featuresproduct areas and adaptive screens/GardenOps/ModelsSwiftData domain models and business states/GardenOps/Servicespricing, invoicing, reporting, backup, restore, import, migration, deletion, and synchronization logic/GardenOps/DesignSystemshared UI components and system bridges/GardenOpsTestspersistence and migration regression tests/screenshotssanitized portfolio coverCLOUDKIT_SETUP.mdcurrent CloudKit compatibility statusCOVERAGE.mdimplemented quality coverageQA_MANUAL_REGRESSION.mdmanual regression checklist
- Clone the repository:
git clone https://github.com/arshial/gardenops.git
cd gardenops- Open
GardenOps.xcodeprojwith Xcode 26 or newer. - Select the
GardenOpsscheme. - Run on an iPhone or iPad simulator, a connected device, or My Mac.
The first launch creates an empty local archive with initial business settings. Add records manually or import CSV files from Settings.
Run the regression suite on macOS:
xcodebuild \
-project GardenOps.xcodeproj \
-scheme GardenOps \
-destination 'platform=macOS' \
testFor the broader manual workflow, follow QA_MANUAL_REGRESSION.md.
- No production customer, collaborator, invoice, payment, or company records belong in the repository.
- Runtime business data stays in the local SwiftData archive unless the user explicitly exports or synchronizes it.
- Synchronization is disabled by default and is limited to devices on the same local network.
- Backup files can contain business data and must be handled as private operational documents.
- CloudKit is intentionally disabled until the schema is made compatible; see
CLOUDKIT_SETUP.md.
GardenOps demonstrates native product engineering across adaptive interface design, complex business modeling, financial reconciliation, offline persistence, document workflows, migration safety, device-to-device synchronization, and regression testing in one maintainable Apple-platform codebase.
