Skip to content

Repository files navigation

Breast Cancer Companion App

Breast health awareness companion — Expo/React Native app for education, self-check habits, wellness resources, appointment prep, and an AI educational assistant (Ghana/WHO-focused content).


Table of Contents


System Design

A mobile-first Expo app with React Navigation tabs, local context providers for app state, and cloud sync via Supabase. Gemini powers an educational AI overlay — informational only, not diagnostic.

flowchart TB
  App[Expo React Native App]
  Nav[React Navigation]
  Context[Context Providers]
  Supabase[(Supabase Auth + Postgres)]
  Gemini[Google Gemini API]
  Notif[expo-notifications]

  App --> Nav
  App --> Context
  Context --> Supabase
  App --> Gemini
  App --> Notif
Loading
Layer Role
Screens Home, Learn, Tools, Support, Settings, Auth flows
Context Auth, progress, journal, wellness, planner state
Services Supabase repos, Gemini chat, notification scheduling
supabase/schema.sql Postgres tables with Row Level Security

Disclaimer: This app provides educational information only. It does not diagnose or replace professional medical advice.


Features

  • Auth: sign up, sign in, forgot password (Supabase)
  • Learning modules, paths, daily facts, quizzes, myth/fact cards
  • Self-exam steps and monthly self-check planner with reminders
  • Symptom journal and risk assessment quiz
  • Appointment prep checklist
  • Community insights and wellness resources
  • AI assistant overlay (Gemini — educational only)
  • Progress synced to Supabase (modules, quizzes, bookmarks, self-check logs)
  • PDF export support (expo-print)

Technology Stack

Component Technology
Mobile Expo SDK 54, React Native 0.81, React 19, TypeScript
Navigation React Navigation (stack + bottom tabs)
Backend Supabase (auth + Postgres)
AI Google Gemini API
Storage AsyncStorage (local cache)
Notifications expo-notifications

Getting Started

Prerequisites

  • Node.js 18+
  • Expo CLI (npx expo)
  • Supabase project (run supabase/schema.sql)

Install and run

npm install
npx expo start
# Expo Go / dev client

npm run android   # Native Android
npm run ios       # Native iOS
npm run web       # Web preview

Configuration

Set via app.json extra or environment variables:

Variable Purpose
EXPO_PUBLIC_SUPABASE_URL Supabase project URL
EXPO_PUBLIC_SUPABASE_ANON_KEY Supabase anon key
EXPO_PUBLIC_GEMINI_API_KEY Gemini API key
EXPO_PUBLIC_GEMINI_MODEL Optional; default gemini-1.5-flash

Move API keys to environment variables for production builds — avoid committing secrets in app.json.


Deployment

Target Notes
EAS Build Profiles in eas.json: development, preview, production
App stores Bundle ID: com.richieroidev.BreastCancerAwarenessApp
npx eas build --platform android
npx eas build --platform ios

Project Structure

BreastCancerCompanionApp/
├── App.tsx / index.ts
├── app.json / eas.json
├── src/
│   ├── screens/
│   ├── components/
│   ├── context/
│   ├── services/
│   └── data/
└── supabase/schema.sql

License

See repository for license terms.

About

Warm, educational Expo companion app for breast cancer awareness, self-awareness habits, and resources.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages