Skip to content

nishantsharma1115/Heros_Blood

Repository files navigation

Heroes Blood

Play Store Link

Download APK

Heroes Blood is a Blood donation Android application 📱 built using Modern Android development tools.

📸 Features

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • DataBinding - Binds data directly into XML layouts
  • Backend - Google Firebase
    • Firebase Auth - To support email based authentication
    • Firebase Firestore - A NoSQL database to store all data
    • Firebase Storage - A cloud storage to store all images
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Google Map SDk - The Google Maps Api helps us to lay down the map into our Android App. It can have different types of map like satellite, terrain and many more. Adding these features on the map helps us to add cool features to our app and make our app able to guide to places to which the user wants.
  • GSON - A modern JSON library for Kotlin and Java.
  • GSON Converter - A Converter which uses GSON for serialization to and from JSON.
  • Coil - An image loading library for Android backed by Kotlin Coroutines.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Facebook Shimmer Effect - It is useful as an unobtrusive loading indicator that was originally developed for Facebook Home, that used as a placeholder for data when data is loading from remote source(Firebase) for Android.

Package Structure

com.nishant.heorsblood  # Root Package
.
├── model                               # For holding data for views.
|
├── repositories                        # Repository to interct with firebase             
│   ├── AuthRepository                  # To interct with Firebase Authentication
|   └── DataRepository                  # To interct with Firebase Firestore and Firebase Storage 
|
├── ui                                  # UI/View layer
│   ├── fragments                       # Contain fragments
        └── #                      # Contain fragments used in # navgraph
│   ├── DonorListActivity               # Show list of specific donors
|   ├── DonorLocationMapActivity        # Show Live location of donor on google map
|   ├── DonorProfileActivity            # Show donor profile
│   ├── EditUserProfileActivity         # Logged in user can change their profile
│   ├── IntroScreenActivity             # on boarding screen
|   ├── LoginActivity                   # User can login
|   ├── #Activity                  # # activity that contain navHostFragment
│   ├── UserDashboardActivity           # Dashboard activity
|   ├── UserProfileActivity             # user profile activity
|   └── UserRegistrationActivity        # User can register for donation
|
├── utils                               # Utility Classes / Kotlin extensions
|
└── viewmodels                          # viewmodels to provide model to views
    ├── AuthViewModel                   # To handle authenticated related things
    └── DataViewModel                   # To handle data 

Architecture

This app uses MVVM (Model View View-Model) architecture.

Contact

If you need any help, you can connect with me.

Visit:- Nishant Sharma | LinkedIn | Instagram | Facebook