diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88f9c7d..4feb938 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -79,3 +79,34 @@ jobs: - name: Build run: pnpm --filter sidewalk-web build + + mobile: + name: Mobile + runs-on: ubuntu-latest + defaults: + run: + working-directory: . + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 9 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'pnpm' + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Lint + run: pnpm --filter mobile lint + + - name: Type check + run: pnpm --filter mobile typecheck diff --git a/README.md b/README.md index 38bd13c..7672773 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,10 @@ Mobile app: pnpm dev:mobile ``` +## Demo runbook + +Use [docs/phase-1-demo-runbook.md](./docs/phase-1-demo-runbook.md) for the current end-to-end demo path across API, web, and mobile. + ## Local quality checks Run the full workspace checks: diff --git a/docs/phase-1-demo-runbook.md b/docs/phase-1-demo-runbook.md new file mode 100644 index 0000000..1ecea82 --- /dev/null +++ b/docs/phase-1-demo-runbook.md @@ -0,0 +1,39 @@ +# Phase 1 Demo Runbook + +This runbook covers the current Phase 1 demo path using the API, web app, and mobile app. + +## Environment + +- Install dependencies with `pnpm install` +- Ensure MongoDB and Redis are available +- Configure the API from `apps/api/.env.example` +- Configure the mobile app from `apps/mobile/.env.example` + +## Start the stack + +1. Run `pnpm --filter sidewalk-api db:seed` +2. Run `pnpm dev:api` +3. Run `pnpm dev:web` +4. Run `pnpm dev:mobile` + +## Web flow + +1. Open `http://localhost:3000/diagnostics` +2. Verify the health card shows API connectivity +3. Open the OTP auth flow and sign in +4. Create a report from `/dashboard/reports/new` +5. Open the report detail page +6. If using an admin account, open the moderation queue and submit a status update + +## Mobile flow + +1. Launch the Expo app +2. Request and verify an OTP from the login screen +3. Submit a report from the Reports tab +4. Reopen the app to confirm the stored session restores + +## Known limitations + +- OTP delivery depends on the configured email transport +- The admin anchoring flow still expects the original Stellar transaction hash +- Mobile media capture and richer report history are still evolving beyond the core Phase 1 demo