Peregrine

Documentation specific to Project Peregrine (Internal Only).

This section contains documentation for Project Peregrine. Access is restricted.

Overview

Project Peregrine refers to the internal development of the The Phenom App mobile application built using React Native and the Expo.dev platform.

Core Failure Statement

Peregrine exists to build the Phenom App. But Phenom isn’t just software; it must be a catalyst. A tool so intuitive, so effective at capturing phenomena, that it inspires users, pulling them into the experience of discovery. If the app Peregrine delivers fails to create that pull, fails to make documenting the world feel essential and engaging, then this project has not achieved its true goal.

S.M.A.R.T. Goals

These goals define specific, measurable objectives for Project Peregrine:

  1. Goal: Establish a fully automated CI/CD pipeline for both iOS and Android builds using Expo Application Services (EAS) and GitHub Actions.

    • Measurable: Pipeline successfully builds, runs unit/integration tests, and deploys internal distribution builds to TestFlight/Google Play Internal Testing track on every merge to the main branch.
    • Achievable: Utilizes standard, documented tooling (EAS, GitHub Actions).
    • Relevant: Directly supports the reliable delivery of the Phenom App and its incarnations.
    • Time-bound: Target: End of Q3 2025.
  2. Goal: Achieve >80% unit test coverage for core application logic (state management, API interactions, key utilities).

    • Measurable: Test coverage reports generated during CI runs consistently show >80%.
    • Achievable: Requires dedicated development effort but is a standard quality benchmark.
    • Relevant: Ensures code quality and reduces regressions, supporting reliable builds.
    • Time-bound: Target: End of Q4 2025.
  3. Goal: Reduce the average time from code merge (main branch) to available internal test build (TestFlight/Google Play) to under 45 minutes.

    • Measurable: Track pipeline execution times via GitHub Actions logs; calculate rolling average.
    • Achievable: Requires optimization of build steps, caching, and testing phases.
    • Relevant: Improves development velocity and feedback loops for the Phenom App.
    • Time-bound: Target: End of Q3 2025.

Key Technologies:

  • Framework: React Native
  • Platform/SDK: Expo.dev
  • Language: TypeScript

This approach allows for cross-platform development targeting both iOS and Android from a single codebase.

Repositories:

See the subsections for more details on specific aspects like sensor usage.


Product Requirements Document (PRD)

High-level product requirements for the Peregrine version of the Phenom app.

Sensor Usage

Overview of device sensors utilized via Expo APIs.

iOS TestFlight Testing (EAS)

Using TestFlight and EAS for testing iOS feature branches.

Team Meeting Notes

Agendas, notes, and action items from Peregrine project team meetings.

Finding Device UDIDs

Instructions for finding iOS and Android device UDIDs for internal testing builds.

EAS Feature Branch Builds

How to create and distribute internal test builds for feature branches using EAS Build.

Testing Roles & Responsibilities

Assignment of testing responsibilities for Project Peregrine and Project Buzzard features.


Last modified July 19, 2025: Update _index.md (79adc70)