Skip to content

About

This android app is about sharing locations in emergency.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Zero Trap animated project banner Zero Trap logo

Zero Trap

Emergency help, one tap away.

A community-powered mobile emergency assistance network for faster, safer, more connected help.

GitHub stars License Last commit

React Native 0.76.9 Expo SDK 52 Firebase 10.7.1 Android ready

Overview  •  Capabilities  •  Setup  •  Security  •  Contributing


🎯 Overview

Emergencies are time-sensitive. Zero Trap gives people a focused way to request support, share a location, communicate with helpers, and coordinate assistance through one mobile experience.

Mission: Make emergency assistance more connected, more responsive, and more accessible.

✨ Capabilities

Request and respond

  • Create and track emergency help requests.
  • Discover nearby opportunities to help.
  • Support internet and short-range Bluetooth-oriented flows.
  • Preserve request history with explicit active, accepted, completed, and cancelled states.

Stay connected

  • Share location with the appropriate emergency flow.
  • Use Google Maps and Android location services.
  • Communicate through real-time, timestamped conversations.
  • Receive emergency-related push notifications.

Build trust

  • Firebase Authentication and profile management.
  • Helping scores and community activity.
  • Privacy policy and terms screens.
  • User reporting and blocking foundations.

🧭 Product flow

  REQUEST HELP
       │
       ▼
  SHARE LOCATION ──────► NEARBY HELPERS DISCOVER THE REQUEST
       │                                  │
       └──────── REAL-TIME CHAT ◄─────────┘
                          │
                          ▼
                    COORDINATE SUPPORT

🛠 Built with

  • Mobile: React Native 0.76.9, Expo SDK 52, JavaScript
  • Navigation: React Navigation
  • Cloud: Firebase Authentication, Cloud Firestore, Firebase Storage
  • Maps and device services: React Native Maps, Expo Location, Expo Device, Expo Task Manager
  • Engagement: Expo Notifications, AsyncStorage, Expo Image Picker
  • Delivery: Expo Application Services (EAS)

📁 Project structure

ZeroTrapApp/
├── assets/             # Branded icons, splash artwork, and static resources
├── components/         # Reusable interface components
├── navigation/         # Navigation configuration
├── screens/            # Application screens
├── services/           # Firebase, location, notification, and storage services
├── utils/              # Shared utilities
├── scripts/            # Administrative utilities
├── App.js              # Application entry point
├── app.config.js       # Expo configuration and private environment/build overrides
├── eas.json            # EAS build profiles
├── firestore.rules     # Firestore access rules
├── firebaseConfig.js   # Environment-based Firebase client setup
└── package.json        # Dependencies and npm scripts

🚀 Setup

Prerequisites

  • Node.js and npm
  • Git
  • Android Studio with an emulator or a physical Android device
  • A Firebase project with Authentication and Firestore enabled
  • A restricted Google Maps API key
  • An Expo / EAS account for device builds

Install and run

git clone https://github.com/tracolerd/Zero-Trap---Android-App.git
cd Zero-Trap---Android-App
npm install
npx expo start

Press a to open Android, or use an appropriate Expo development client.

Configure Firebase safely

The repository intentionally contains no live Firebase, Google Maps, Android, or EAS credentials.

  1. Copy google-services.example.json to google-services.json locally and fill it with the Android configuration downloaded from Firebase Console.
  2. Create a local .env.local file with the Firebase web values:
EXPO_PUBLIC_FIREBASE_API_KEY=your_firebase_web_api_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project.firebasestorage.app
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_firebase_web_app_id
  1. Configure the Google Maps key and EAS project in your private build environment:
EXPO_PUBLIC_GOOGLE_MAPS_API_KEY=your_restricted_maps_key
EXPO_PUBLIC_EAS_PROJECT_ID=your_eas_project_id
  1. Restrict every key by Android package, signing certificate, API, quota, and environment.

Location, background tasks, notifications, camera access, and maps should be tested on a physical Android device before release.

📜 Commands

npm start                 # Start the Expo development server
npm run android           # Run the Android development workflow
npm run ios               # Run the iOS workflow where supported
npm run web               # Start the web workflow
npx expo-doctor           # Validate Expo configuration and dependencies
npx expo export --platform android --clear
npx expo export --platform web --clear

EAS builds

npx eas login
npx eas build:configure
npx eas build --platform android

Use the preview profile for an installable APK and production for an Android App Bundle.

🔐 Security

Zero Trap handles location, authentication, communication, and emergency-related data. Please:

  • Never commit google-services.json, service-account keys, .env files, keystores, or private API credentials.
  • Review firestore.rules before deploying production data.
  • Use a private release/upload keystore and configure release certificate restrictions.
  • Keep Firebase and Google Cloud keys limited to the APIs and apps that need them.
  • Minimize sensitive data collection and retention.
  • Report vulnerabilities privately to the maintainer instead of publishing exploit details.

🛣 Roadmap

  • Authentication and profile management
  • Location-aware emergency requests
  • Map integration and real-time communication foundation
  • Firebase / Firestore integration
  • Expo notification integration
  • Refine push-notification delivery
  • Improve offline emergency communication
  • Expand helper matching and reputation
  • Increase automated test and CI coverage
  • Complete production hardening and security review

🤝 Contributing

Contributions, bug reports, and thoughtful product ideas are welcome.

git checkout -b feature/your-feature
git add .
git commit -m "feat: describe your change"
git push origin feature/your-feature

Open a pull request against main with a concise summary, testing notes, and screenshots for user-facing changes.

Creator, Developer & Maintainer

Created, designed, developed, and maintained by Nurul Faiyaz.

This project is independently built and maintained by Nurul Faiyaz. The project's design, implementation, and documentation are his work.

Facebook Instagram LinkedIn X GitHub Email Personal website

Facebook · Instagram · LinkedIn · X / Twitter · GitHub · Email · Website

📄 License

This project is distributed under the license included in LICENSE.


Built with purpose for people who need help when it matters most.



⭐ Star the repository if you find the project useful.



Portfolio catalog · Project 12 of 22 · Nurul Faiyaz

About

This android app is about sharing locations in emergency.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages