Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @BTheCoderr
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Bug report
about: Report a reproducible SmartProBono problem
title: "[Bug] "
labels: bug
assignees: ""
---

## What happened?

## Expected behavior

## Where?

- [ ] Onboarding
- [ ] Trusted Circle
- [ ] Safety Mode
- [ ] Travel Mode
- [ ] Kid Track / Family Hub
- [ ] Recording
- [ ] History
- [ ] Health Check
- [ ] Support site
- [ ] Other

## Steps to reproduce

1.
2.
3.

## Device / version

- SmartProBono version:
- iOS / device:

## Evidence

Do not post private recordings, precise locations, trusted-contact details, phone numbers, or credentials.
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: Feature request
about: Suggest a SmartProBono product or engineering improvement
title: "[Feature] "
labels: enhancement
assignees: ""
---

## Problem

## Proposed experience

## Why it belongs in SmartProBono

How does it improve safety-session usability, documentation, trusted-contact coordination, privacy, or reliability?

## Notes / constraints

Include privacy, recording-law, location, accessibility, and App Store considerations when relevant.
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## What changed

## Why

## Verification

- [ ] Mobile TypeScript passes
- [ ] Support-site build passes when `web-next/` changed
- [ ] No private session data, personal contacts, recordings, or credentials were committed
- [ ] Safety/privacy copy remains calm and non-authoritative
- [ ] Recording/location changes were checked against user-facing disclosures

## Product surfaces checked

- [ ] Onboarding
- [ ] Trusted Circle
- [ ] Safety Mode
- [ ] Travel Mode
- [ ] Kid Track / Family Hub
- [ ] Recording
- [ ] History
- [ ] Health Check
- [ ] Support site
- [ ] Not applicable

## Deployment

GitHub merge, EAS/App Store release, and Netlify publication are separate actions.
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
version: 2
updates:
- package-ecosystem: npm
directory: /SmartProBonoPocket
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 5
commit-message:
prefix: deps-mobile

- package-ecosystem: npm
directory: /web-next
schedule:
interval: weekly
day: monday
open-pull-requests-limit: 5
commit-message:
prefix: deps-web
63 changes: 63 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: CI

on:
pull_request:
branches: [main]
push:
branches: [main]

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
mobile:
name: Mobile typecheck
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: SmartProBonoPocket
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: SmartProBonoPocket/package-lock.json

- name: Install dependencies
run: npm ci

- name: TypeScript
run: npx tsc --noEmit

support-site:
name: Support site build
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: web-next
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: web-next/package-lock.json

- name: Install dependencies
run: npm ci

- name: Build
run: npm run build
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Changelog

## Current production line

SmartProBono is publicly available on the Apple App Store.

The mobile configuration is currently version **1.0.0**. The shipped product centers on trusted contacts, Safety Mode, location capture/sharing, optional recording, calm guidance, and local session history.

Repository work may include features ahead of the currently published build; production release notes should only claim functionality that has passed device QA and App Store release.

## Policy

Add a dated entry whenever the App Store marketing version changes. Keep App Store changes separate from unreleased repository work.
33 changes: 33 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Contributing to SmartProBono

SmartProBono is a shipped local-first iOS safety companion. It helps users document important moments, share selected information with trusted contacts, and follow calm structured guidance.

## Mobile checks

```bash
cd SmartProBonoPocket
npm ci
npx tsc --noEmit
```

## Support-site checks

```bash
cd web-next
npm ci
npm run build
```

## Privacy and safety

Never commit real user contacts, precise location history, recordings, personal session details, credentials, or private device artifacts.

Recording and location features require special care: preserve user-facing disclosures, explicit user control, and local-first defaults.

## Scope

SmartProBono is not emergency dispatch, a substitute for emergency services, a lawyer, or individualized legal advice.

## Deployment

GitHub merge, EAS/App Store release, and Netlify publication are separate release steps.
7 changes: 7 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Copyright (c) 2026 Baheem Ferrell

All rights reserved.

This source code is publicly viewable for portfolio, review, and collaboration purposes. No permission is granted to copy, modify, distribute, sublicense, sell, or create derivative works from this repository except with the copyright holder's prior written permission.

Third-party dependencies and assets remain subject to their own licenses and terms.
43 changes: 43 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# SmartProBono — Mobile Safety Companion

[![CI](https://github.com/BTheCoderr/smartprobonopocketbuddy/actions/workflows/ci.yml/badge.svg)](https://github.com/BTheCoderr/smartprobonopocketbuddy/actions/workflows/ci.yml)
![App Store](https://img.shields.io/badge/App%20Store-Live-000000?logo=apple)
![Expo](https://img.shields.io/badge/Expo-54-000020?logo=expo)
![React Native](https://img.shields.io/badge/React%20Native-0.81-61DAFB?logo=react)
![TypeScript](https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript&logoColor=white)


<!-- repo-intro:start -->
**Project snapshot:** SmartProBono is a shipped iOS safety companion that helps people document important moments, share location with trusted contacts, and follow calm, structured guidance during stressful situations.

Expand Down Expand Up @@ -29,6 +36,22 @@
| Onboarding | Guided setup for contact, recording disclosure/preferences, and location permission |
| Support web | Next.js marketing, privacy, support, and Pocket Buddy legal/support pages |

## Architecture

```text
iPhone / iPad (Expo + React Native)
│
├── Trusted Circle
├── Safety / Travel / Kid Track sessions
├── Location + Contacts
├── Audio / Camera / local files
└── explicit platform share flows

web-next/ ──► Next.js support / privacy / marketing
```

See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the full local-first data and release model.

## Current mobile architecture

`SmartProBonoPocket/` contains the Expo / React Native application.
Expand Down Expand Up @@ -97,6 +120,21 @@ npm install
npm run dev
```

## Repository guide

- [CHANGELOG.md](CHANGELOG.md) — production release notes
- [ROADMAP.md](ROADMAP.md) — shipped, improving, and exploring
- [docs/README.md](docs/README.md) — current vs. historical documentation
- [CONTRIBUTING.md](CONTRIBUTING.md) — development expectations
- [SECURITY.md](SECURITY.md) — vulnerability and privacy guidance
- [.github/workflows/ci.yml](.github/workflows/ci.yml) — automated mobile + support-site verification

## Repository quality gates

Pull requests now run mobile TypeScript verification and a production build of the current Next.js support site. Dependabot monitors both npm projects.

**GitHub merge, EAS/App Store release, and Netlify publication are separate actions.**

## Product status

**Shipped.** SmartProBono is publicly available on the Apple App Store.
Expand All @@ -108,3 +146,8 @@ The repository also contains work that may be ahead of the currently published s
SmartProBono is a support and documentation tool. It is not a substitute for emergency services, a lawyer, or individualized legal advice.

Recording and privacy laws vary by jurisdiction. Recording features are presented with user-facing disclosures and should only be used where lawful.


## License

Copyright © 2026 Baheem Ferrell. All rights reserved. This public repository is viewable for portfolio, review, and collaboration purposes and is not released under an open-source license. See [LICENSE](LICENSE).
36 changes: 36 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# SmartProBono Roadmap

This is product direction, not a guarantee of dates.

## Shipped

- guided onboarding
- trusted emergency contact
- Safety Mode
- location capture / share flow
- optional safety recording
- calm guidance
- local session history
- App Store release
- support / privacy web pages

## Improving

- Family Hub and Kid Track QA
- Travel Mode continuity
- permission and recovery handling
- recording reliability
- accessibility
- Health Check diagnostics
- App Store / support-site consistency

## Exploring

- stronger multi-contact coordination
- clearer export / evidence organization
- improved session summaries
- safer cross-device continuity where it can preserve privacy

## Product boundary

SmartProBono is a support and documentation tool. It is not emergency dispatch and does not replace emergency services or individualized legal advice.
9 changes: 9 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Security Policy

Security fixes target the current production release and `main`.

Do not open public issues containing private recordings, trusted-contact data, precise location history, device identifiers, credentials, or exploit details that could expose user information.

Prefer GitHub private vulnerability reporting / Security Advisories when available.

SmartProBono is local-first: changes should preserve minimal data collection, explicit sharing, and least-privilege permission use.
41 changes: 41 additions & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# SmartProBono Architecture

## Product surfaces

```text
iPhone / iPad
Expo + React Native
│
├── local session runtime
├── AsyncStorage / local files
├── Location / Contacts
├── Audio / Camera
└── platform share / SMS flows

web-next/
Next.js support + privacy + marketing site
```

## Mobile

`SmartProBonoPocket/` contains the primary shipped app. It uses React Native / Expo, React Navigation, AsyncStorage, location, contacts, audio, camera, file-system, and sharing APIs.

## Data model

The app is intentionally local-first. Sensitive safety-session data remains on-device unless the user explicitly shares it using platform flows.

## Active-session runtime

Session services coordinate Safety, Travel, and Kid Track flows, persist live state for recovery, and write finished sessions into local history.

## Permissions

Location, contacts, microphone, and camera are requested for specific user-facing functions. Permission copy and fallback behavior are part of the safety model and should be treated as product-critical.

## Web

`web-next/` contains the current support/marketing/legal surface. The older `web/` directory remains historical/supporting work.

## Release boundary

GitHub code, EAS builds, App Store submissions, and Netlify publishing are separate release stages.
Loading
Loading