Official download & guide page for Road-SOS (Resucel) — a React Native safety app for motorcyclists. Features APK download, Gradle build instructions, tech stack overview, and installation guide.
Live Link: pranshupujara.github.io/Rescuel/
Road-SOS is a real-time ride monitoring and emergency response application built with React Native. It is designed to act as a digital guardian for motorcyclists by providing a distraction-free riding cockpit, automated crash detection, and intelligent SOS routing that ensures help is always within reach.
- Live Cockpit Dashboard: A high-visibility, distraction-free UI that displays real-time speed (KM/H), trip distance, and duration.
- Automated Crash Detection: Utilizes device motion sensors (accelerometer/gyroscope) to detect potential accidents and trigger an SOS countdown.
- Smart Emergency Routing: Automatically formats and routes emergency SMS messages with live GPS coordinates to pre-configured emergency contacts.
- Medical Intelligence Map: Integrates with Google Maps to show live route tracking and plots nearby medical centers, with a specialized legend to highlight Trauma Centers versus regular hospitals.
- Secure Authentication: Email and password authentication via Firebase, completely replacing less reliable phone OTP flows, ensuring user accounts are secure and accessible globally.
- Fluid UI/UX: Built with custom animations, glassmorphism UI components, high-contrast dark mode support, and premium skeleton loading screens.
- Frontend Framework: React Native (Bare Workflow via Expo Prebuild)
- Language: TypeScript
- State Management & Routing: React Navigation
- Maps Integration:
react-native-mapswith Google Maps SDK - Backend & Auth: Firebase Authentication
- Local Storage:
expo-secure-store - Native Build System: Gradle (Android)
Road-SOS/
├── android/ # Native Android code generated via Expo Prebuild
├── src/
│ ├── assets/ # App icons, adaptive icons, and static images
│ ├── components/ # Reusable UI components (Skeleton loaders, Modals, Buttons)
│ ├── context/ # React Contexts (Theme, Auth, Network, AppState)
│ ├── hooks/ # Custom React Hooks (useLiveLocation, useRideSession)
│ ├── navigation/ # React Navigation stacks and routers
│ ├── screens/ # Main application screens (Auth, RideMonitoring, Map)
│ ├── theme/ # Global styling, color palettes, and typography tokens
│ └── utils/ # Helper functions (formatters, validators, math helpers)
├── App.tsx # Application entry point and root Provider tree
├── app.json # Expo configuration (permissions, splash screen, bundle ID)
└── package.json # Node.js dependencies and scripts
- Node.js: Ensure Node.js (v18+) is installed.
- Android Studio: Required for compiling the native Android application.
- Expo CLI: Installed globally (
npm install -g expo-cli). - Firebase Account: Required for Authentication services.
git clone https://github.com/your-username/Road-SOS.git
cd Road-SOS
npm installYou must provide your own API keys. Ensure google-services.json is placed in the root directory for Firebase Android configuration.
Create a .env file in the root if you are using environment variables for the Google Maps API key, or ensure your app.json contains your valid Maps key under android.config.googleMaps.apiKey.
npx expo startNote: Because this project uses custom native modules (Bare Workflow), you cannot use Expo Go. You must build a custom development client or run on an emulator/device.
npx react-native run-android
# OR
npx expo run:androidTo generate a standalone, production-ready APK, we use Gradle directly:
cd android
.\gradlew clean
.\gradlew assembleReleaseThe compiled APK will be output to:
android/app/build/outputs/apk/release/app-release.apk
- The app uses
createUserWithEmailAndPasswordandsignInWithEmailAndPassword. - Passwords are never stored locally in plain text; authentication tokens are managed by Firebase and persisted locally using encrypted
expo-secure-store.
The application strictly requests the following permissions in app.json / AndroidManifest.xml:
ACCESS_FINE_LOCATION&ACCESS_COARSE_LOCATION: Required for live routing and mapping nearby hospitals.ACCESS_BACKGROUND_LOCATION: Required to track the user's ride and detect crashes even when the screen is locked.FOREGROUND_SERVICE: Ensures the operating system does not kill the app during an active ride.VIBRATE: Used to provide haptic feedback during SOS countdowns to alert the rider.
- Emergency contact inputs are strictly validated. The app isolates the 10-digit subscriber number from the international prefix (e.g.,
+91) before executing validation to ensure no false negatives occur during SOS routing.
If you need to change the application icon:
- Replace
src/assets/icon.pngandsrc/assets/adaptive-icon.pngwith your new assets. - Run the Expo Prebuild command to cleanly regenerate the native Android resource directories:
npx expo prebuild --platform android --clean
- Rebuild the application using Gradle.
- Google Maps Not Loading / Grey Grid: Ensure your Google Maps API Key in
app.jsonis valid and unrestricted, and that billing is enabled on your Google Cloud Console. - Firebase Auth Errors: Double-check that your
google-services.jsonis in the root directory and that the package name inapp.json(com.aumus.road_sos) perfectly matches your Firebase project settings. - Gradle Build Failures: If you encounter
splashscreen_logoerrors, ensure that your native Androidres/drawablefolders contain a valid PNG image, or runexpo prebuild --cleanto reset the native state.
Road-SOS — Ride Hard. Ride Safe.