The GGE (Giant Gippsland Earthworm) app is designed to engage users in the observation and conservation of the Giant Gippsland Earthworm, a unique and endangered species native to Victoria, Australia. Through this app, users can record sightings and contribute valuable data to support conservation efforts.
-
Observation Tracking
Users can log sightings of the Giant Gippsland Earthworm by capturing photos, audio recordings, location data, and notes, contributing to a public record of worm habitats and population data. -
Public Awareness
The app aims to raise awareness about the conservation needs of the Giant Gippsland Earthworm by making observation data accessible to the public and relevant conservation groups. -
Educational Resources
Provides users with access to conservation resources and third-party links to external sites for learning more about the earthworm species and related environmental topics.
- Flutter: Used for building a cross-platform mobile application.
- GetX: Employed for efficient state management within the app.
- Firebase:
- Authentication: Provides secure, scalable user authentication.
- Firestore: Cloud Firestore offers a fast and flexible NoSQL database solution for storing user data and preferences.
- Firebase Storage: Stores media files and other assets securely, allowing for seamless integration with user data.
This guide provides step-by-step instructions to set up and run the GGE project on your local system, as well as how to contribute to the project.
-
Clone the Repository
Clone the GGE repository to your local system:git clone https://github.com/your-username/giant_gipsland_earthworm.git cd giant_gipsland_earthworm
-
Install Dependencies
Ensure you have Flutter installed, and then fetch the necessary packages:flutter pub get
-
Connect to Firebase
Use theflutterfire
CLI to connect your Flutter project to Firebase. If you haven't installedflutterfire
, you can install it using the following command:dart pub global activate flutterfire_cli
Once
flutterfire
is installed, configure your Firebase project by running:flutterfire configure
Follow the prompts to select your Firebase project and platforms, and
flutterfire
will automatically generate the required configuration files.- Ensure
firebase_options.dart
is generated in your project files. - Make sure
google-services.json
is added inandroid/app
andGoogleService-Info.plist
is added inios/Runner
.
- Ensure
-
Google Sign-In Configuration
To enable Google Sign-In, add the following configuration in yourInfo.plist
for iOS:<key>GIDClientID</key> <!-- Copied from GoogleService-Info.plist key CLIENT_ID --> <string>YOUR_CLIENT_ID_HERE</string> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLSchemes</key> <array> <!-- Copied from GoogleService-Info.plist key REVERSED_CLIENT_ID --> <string>YOUR_REVERSED_CLIENT_ID_HERE</string> </array> </dict> </array>
-
Google Maps API Key Setup
Add the Google Maps API keys to enable map functionality:- For Android: Add the API key in
AndroidManifest.xml
located atandroid/app/src/main
. - For iOS: Add the API key in
AppDelegate.swift
located atios/Runner
.
You can refer to the Google Maps Flutter package for further details.
- For Android: Add the API key in
-
Run the App
Use Flutter to run the app on an emulator or connected device:flutter run
To get a Google Maps API key, follow these steps:
- Open the Google Cloud Console.
- Sign in with your Google account if you haven't already.
- In the top menu, click on the project dropdown.
- Click on New Project if you want to create a new project, then give it a name and click Create.
- If you already have a project, select it from the list.
- With your project selected, go to the Library tab in the left-hand menu.
- Search for Maps JavaScript API, Places API, and Geocoding API (if you need more location functionalities).
- Click on each API and then click Enable.
- In the left-hand menu, go to APIs & Services > Credentials.
- Click Create Credentials and select API Key.
- Google will generate an API key for you. Copy this key as you’ll need it to configure your app.
-
For Android: Open
AndroidManifest.xml
located inandroid/app/src/main
, and add your API key within the<application>
tag:<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY_HERE" />
-
For iOS: Open
AppDelegate.swift
inios/Runner
, and add your API key in thedidFinishLaunchingWithOptions
function:import GoogleMaps @UIApplicationMain class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("YOUR_API_KEY_HERE") return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
We welcome contributions to the GGE project! Please follow the steps below to make a contribution:
-
Create a New Branch
Create a new branch for your issue or contribution. Naming the branch based on the feature or issue number is recommended (e.g.,feature/observation-tracking
orbugfix/location-accuracy
).git checkout -b your-branch-name
-
Make Your Changes
Add the feature or fix the bug. Ensure your code is clean and tested before committing. -
Commit and Push
Commit your changes with a descriptive message and push your branch to the repository.git add . git commit -m "Describe your changes here" git push origin your-branch-name
-
Submit a Pull Request (PR)
Go to the GitHub repository and submit a pull request. In the PR description, include details about the changes you made, such as the feature added, bug fixed, or improvements made. Please provide any necessary context to help the reviewers understand your contribution.
This README provides an overview of the GGE app, highlights its key features and tech stack, and outlines the steps for installation, Firebase connection, and contribution. We appreciate your support in helping us improve the GGE app!