Pawsitive is an application connecting citizens and rescuers to help animals in distress. It allows citizens to report animal emergencies (SOS) and dispatches nearby verified rescuers using real-time location tracking to provide immediate assistance.
- SOS Reporting & Triage: Citizens can report animal emergencies with photos, location, and severity (Severe, Moderate, Minor). The system calculates urgency scores and handles duplicate cases by grouping reports.
- Intelligent Dispatch System: Automatically alerts nearby verified rescuers using a dynamic expanding ring radius based on incident severity and proximity wait times.
- Real-Time Location & ETA: Tracks rescuer locations via WebSockets for precise dispatching and provides live ETA updates to citizens and NGOs.
- Rescue Condition & Staging Logs: Rescuers can log the condition of the animal at various stages (
en_route,on_scene,first_aid,in_transport,at_vet,recovered) including adding notes and photos. - Drop-off Handling: Tracks where the animal was taken (
vet_hospital,ngo_shelter, ortreated_on_scene). - User Roles & Dashboards: Distinct interfaces for Citizens (reporting and tracking), Rescuers (managing active rescues and status), and NGOs.
- Credit System: Rescuers earn credits for their contributions and successful rescues.
- Rescue Replay & History: Stores rescue location history for detailed activity logging and potential replay/review of rescues.
- Frontend: iOS application built with Swift and SwiftUI, utilizing MVVM architecture.
- Backend: Node.js, Express, and WebSockets (for real-time tracking).
- Database & Auth: Supabase (PostgreSQL) for relational data and authentication.
- Media Storage: Cloudinary for image uploads.
backend/: Contains the Node.js Express server. Features API routes for incidents, dispatch, users, and WebSocket server for real-time location updates.pawsitive-app/: The iOS application source code containing the SwiftUI views, view models, and services.
- Navigate to the
backend/directory:cd backend - Install dependencies:
npm install
- Copy the example environment file and configure the variables (Supabase URLs, keys, database connection, Cloudinary, etc.):
cp .env.example .env
- Start the development server:
The backend runs on
npm run dev
http://localhost:3000by default.
- Ensure you have Xcode installed.
- Navigate to the
pawsitive-app/directory and open the project:cd pawsitive-app open pawsitive-app.xcodeproj - Make sure to configure the
AppConfig.swiftto point theApiEndpoints.baseURLto your running backend (e.g., your local machine's IP address when running on a physical device, orlocalhostfor simulator). - Build and run the app in Xcode.