EcoWise is an iOS application designed to help users identify, document, and visualize sightings of invasive and endangered species based on their current location. It leverages geolocation, Firebase services, and an external species API, all structured under a scalable MVVM architecture.
- User Authentication β Secure sign-up and login via Firebase Authentication
- Location-Aware Species Lookup β Automatically fetches species data based on user GPS coordinates
- Photo Capture & Submission β Users can take photos of species in the wild
- Cloud Integration β Stores all user-submitted data (photo, species, location) in Firebase Firestore and Storage
- Map Visualization β Displays all sightings from all users on an interactive map using MapKit
- MVVM Architecture β Separates business logic, UI, and data management for maintainability
- Language: Swift (iOS 16+)
- Architecture: MVVM (Model-View-ViewModel)
- Backend: Firebase (Auth, Firestore, Storage)
- Location Services: CoreLocation
- Map Rendering: MapKit
- Camera & Media: AVFoundation
- Xcode 15+
- iOS 16 or later
- A Firebase project with:
- Firestore enabled
- Firebase Authentication (Email/Password)
- Firebase Storage
- Clone the repository
git clone https://github.com/yourusername/EcoWise.git
cd EcoWise- Open project in Xcode:
- open EcoWise.xcodeproj
- Add your GoogleService-Info.plist file to the project root
- Run on a simulator or device
- Add search and filter features to map
- Add search to sightings list
- Add endangered species panel
- Improve UI
- Add deletion feature
- Add admin user
- Species auto-recognition using CoreML