Skip to content

Repository files navigation

Cairn

Cairn is a macOS SwiftUI app for fast, keyboard-driven assignment tracking backed by Supabase/Postgres. The project is structured as a monorepo that contains the Swift client, Supabase schema/migrations, and tooling required for local development.

Features

  • Dark-mode only UI modeled after native macOS productivity apps
  • Inline editing for every assignment field with keyboard shortcuts for navigation, deletion, and quick-add
  • Supabase/Postgres backend with migrations and seed data checked into the repo
  • Quick-add row pinned to the top of the list for rapid entry without modal dialogs

Repository Layout

See the inline comments in the specification or browse the directory tree for a tour of the modules:

Cairn/
├── Cairn/                # SwiftUI source
├── supabase/             # Database schema and config
├── scripts/              # Tooling for bootstrapping and formatting
├── docs/                 # Architecture and user-facing documentation
└── Tests/                # Unit and UI tests

Getting Started

  1. Install Xcode 15 or newer plus the Swift toolchain.
  2. Install the Supabase CLI (brew install supabase/tap/supabase).
  3. Run scripts/bootstrap.sh from the repo root to install dependencies and copy config templates (Config/Environment.plist and supabase/config/supabase.env). Populate those with your Supabase URL/anon key, or export SUPABASE_URL/SUPABASE_ANON_KEY in your shell instead.
  4. Open Cairn.xcodeproj in Xcode and select the "Cairn" scheme to build and run.
  5. Follow docs/SUPABASE_SETUP.md to start a local Supabase instance and run migrations.

Contributing

Please read the docs in the docs/ folder for architecture details, coding conventions, and development workflows. Pull requests should include updated documentation and tests where applicable.

Continuous Integration

  • GitHub Actions runs SwiftFormat in lint mode, SwiftLint (--strict), and xcodebuild test on macOS runners with code signing disabled.
  • Match CI locally with:
    brew install swiftformat swiftlint
    swiftformat --lint Cairn Tests
    swiftlint --strict
    xcodebuild -project Cairn.xcodeproj -scheme Cairn -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY="" test
    

License

MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages