benkleintechnologies / Guardia

0 stars 0 forks source link

Guardia

Guardia License

Guardia is a real-time location tracking platform designed to enhance emergency response capabilities for כיתות כוננות (emergency response teams). The system allows for seamless coordination between field personnel and command centers, ensuring swift and informed decision-making during critical situations.

🚀 Features

🛠️ Tech Stack

🏆 Awards

Guardia secured 3rd place at the LevTech GreatMinds 8 Hackathon, showcasing its innovative approach to emergency response management.


📖 Table of Contents

Installation

Prerequisites

Ensure you have the following installed:

Step-by-Step Setup

  1. Clone the repository:

    git clone https://github.com/benkleintechnologies/Guardia.git
    cd Guardia
  2. Install dependencies:

    • For web app:

      cd web
      npm install
    • For mobile app:

      cd mobile
      npm install
  3. Set up Firebase:

    • Create a project in the Firebase Console.
    • Enable Firestore, Authentication (with Email/Password and Google sign-in), and Firebase Hosting.
    • Copy the Firebase config and create .env files for both the web and mobile apps:

      Web .env:

      REACT_APP_API_KEY=your_firebase_api_key
      REACT_APP_AUTH_DOMAIN=your_project.firebaseapp.com
      REACT_APP_PROJECT_ID=your_project_id

      Mobile .env:

      FIREBASE_API_KEY=your_firebase_api_key
      FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
      FIREBASE_PROJECT_ID=your_project_id
  4. Run the apps:

    • Web App:

      npm start
    • Mobile App:

      npx expo start
    • iOS Mobile App: If you're using macOS and have Xcode installed, you can run the iOS app using:

      npx react-native run-ios

Configuration

Configuration is done via .env files for both the web and mobile apps. Ensure that Firebase API keys, project IDs, and other sensitive credentials are added correctly.

To deploy the web app to Firebase Hosting, use the Firebase CLI:

firebase login
firebase init
firebase deploy

Usage

  1. Run the Web App: Visit http://localhost:3000 to access the command center interface.

  2. Run the Mobile App: Use the Expo Go app on your phone or a mobile emulator to test the mobile interface.

  3. Monitoring Locations:

    • Command center can view live positions of all volunteers.
    • Manage visibility, trigger SOS alerts, and coordinate response efforts through the dashboard.

Common Bugs

iOS Pod Installation Issue

After installing iOS Pods, certain files may cause build issues. If you encounter errors, follow the steps below:

  1. Navigate to the following file:
    mobile/ios/Pods/Headers/Public/ReactCommon/ReactCommon.modulemap

    Comment out the following lines:

    //module ReactCommon {
    //  umbrella header "ReactCommon-umbrella.h"
    //  exclude header "React-RuntimeApple-umbrella.h"
    //  export *
    //  module * { export * }
    //}
  2. In the file:
    mobile/ios/Pods/Headers/Public/ReactCommon/React-RuntimeApple.modulemap

    Modify it to include:

    module ReactCommon {
     umbrella header "React-RuntimeApple-umbrella.h" 
     exclude header "ReactCommon-umbrella.h"
     export *
     module * { export * }
    }

Contributors


License

This project is licensed under the MIT License. See the LICENSE file for more details.


🧭 Key Takeaways

Guardia revolutionizes emergency response management by providing real-time situational awareness. Its seamless combination of mobile and web applications makes it an ideal solution for quick decision-making in critical situations.