Skip to content

Repository files navigation

GardenOps

GardenOps calendar and operations dashboard on iPad

Swift and SwiftUI SwiftData iOS 17 or newer macOS 14 or newer Local-first data

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.

Project links

  • Repository: github.com/arshial/gardenops
  • Distribution: source build through Xcode; no public App Store release
  • Supported platforms: iPhone, iPad, and Mac

Why this project is worth showing

  • 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.

Engineering highlights

  • 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

Product areas

Planning and field operations

  • 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

Finance and administration

  • 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

Data continuity

  • 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 .numbers import on macOS
  • Safety-first merge previews and backup creation before synchronized changes

Architecture

Adaptive SwiftUI interface
          |
     Feature views
          |
Domain services and migration actors
   /              |               \
SwiftData     PDF / imports     Local-network sync
   |                                |
Local store                    Encrypted peer transfer

Tech stack

  • 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

Repository layout

  • /GardenOps/App application entry point and model-container setup
  • /GardenOps/Features product areas and adaptive screens
  • /GardenOps/Models SwiftData domain models and business states
  • /GardenOps/Services pricing, invoicing, reporting, backup, restore, import, migration, deletion, and synchronization logic
  • /GardenOps/DesignSystem shared UI components and system bridges
  • /GardenOpsTests persistence and migration regression tests
  • /screenshots sanitized portfolio cover
  • CLOUDKIT_SETUP.md current CloudKit compatibility status
  • COVERAGE.md implemented quality coverage
  • QA_MANUAL_REGRESSION.md manual regression checklist

Quick start

  1. Clone the repository:
git clone https://github.com/arshial/gardenops.git
cd gardenops
  1. Open GardenOps.xcodeproj with Xcode 26 or newer.
  2. Select the GardenOps scheme.
  3. 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.

Testing

Run the regression suite on macOS:

xcodebuild \
  -project GardenOps.xcodeproj \
  -scheme GardenOps \
  -destination 'platform=macOS' \
  test

For the broader manual workflow, follow QA_MANUAL_REGRESSION.md.

Data and privacy

  • 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.

Portfolio focus

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.

About

Native SwiftUI operations and business-management app for gardening and maintenance teams.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages