arteevraina / KnowYourDonor

Blood Donation App made by humans for humans.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

forthebadge forthebadge forthebadge

Know Your Donor 🩸

Blood Donation app made for connecting donor with the patient. During this harsh times of pandemic, normal health care services are facing a set back and Covid-19 is on the top of the priority of health care departments. Also, people are now afraid to leave visit hospitals to arrange blood as they fear they might catch Covid-19. So, to make their life easier Know Your Donor has been developed.

Tech Stack πŸ’»

  • Flutter.
  • Dart.
  • Firebase.
  • Provider for StateManagement.

Features πŸš€

  • Email Authentication using Firebase.
  • Find donors and recipients in your near by area.
  • Volunteer as a Blood Donor or open a request for blood units.

Feel free to open an issue if you have something in mind, it might make a large impact πŸ’“

Screenshots πŸ‘€

Getting Started ⭐

  • Get an API key at https://cloud.google.com/maps-platform/.

  • Enable Google Map SDK for each platform.

    • Go to Google Developers Console.
    • Choose the project that you want to enable Google Maps on.
    • Select the navigation menu and then select "Google Maps".
    • Select "APIs" under the Google Maps menu.
    • To enable Google Maps for Android, select "Maps SDK for Android" in the "Additional APIs" section, then select "ENABLE".
    • To enable Google Maps for iOS, select "Maps SDK for iOS" in the "Additional APIs" section, then select "ENABLE".
    • Make sure the APIs you enabled are under the "Enabled APIs" section.
  • You can also find detailed steps to get start with Google Maps Platform here.

Web

<body>
  <script src="https://maps.googleapis.com/maps/api/js?key=API_KEY"></script>
  <script src="main.dart.js" type="application/javascript"></script>
</body>

Android

Specify your API key in the application manifest android/app/src/main/AndroidManifest.xml:

<manifest ...
  <application ...
    <meta-data android:name="com.google.android.geo.API_KEY"
               android:value="YOUR KEY HERE"/>

iOS

Specify your API key in the application delegate ios/Runner/AppDelegate.m:

#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import "GoogleMaps/GoogleMaps.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GMSServices provideAPIKey:@"YOUR KEY HERE"];
  [GeneratedPluginRegistrant registerWithRegistry:self];
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
@end

Or in your swift code, specify your API key in the application delegate ios/Runner/AppDelegate.swift:

import UIKit
import Flutter
import GoogleMaps

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GMSServices.provideAPIKey("YOUR KEY HERE")
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

Opt-in to the embedded views preview by adding a boolean property to the app's Info.plist file with the key io.flutter.embedded_views_preview and the value YES.

How to setup locally ? 🏁

  1. Fork the repository.

  2. Clone the repository using the following command.

git clone https://github.com/<your-user-name>/KnowYourDonor.git
  1. Open the code in your favorite code editor.

  2. Install the dependencies using the following command:

$ flutter pub get
  1. Build the app using the following command:
$ flutter run

Repository Structure 🚧

 * lib/ : all the code which is making the app run goes in this directory.
 * lib/components : contains code for reusable widgets in the app like buttons, appbars, textboxes etc.
 * lib/constants : contains the configuration for color pallets, validator functions and text styles.
 * lib/models : contains code for Seeker and Donor Model.
 * lib/provider : contains code for all the Provider classes for statemanagement.
 * lib/repository : contains code for Donor and Seeker Repository for communicating with Cloud Firestore database.
 * lib/views : contains code for the frontend screens.
 * test : contains the code for widget and unit test of the Application.

Interested in contributing ? 🌼

See the contributor's guide!

Questions or issues ?

If you have general question about the project. Feel free to join discord server.

License

MIT Β© 2021

Learn Flutter ?

Follow this link

About

Blood Donation App made by humans for humans.

License:MIT License


Languages

Language:Dart 99.6%Language:Swift 0.3%Language:Kotlin 0.1%Language:Objective-C 0.0%