Skip to content

Latest commit

ย 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Aid-Link ๐Ÿค

Aid-Link is an Android application designed to connect volunteers with organizations that need assistance.

The platform allows organizations to publish volunteering opportunities, while volunteers can browse available opportunities, search for relevant posts, and register for events.


๐Ÿ“ฑ Overview

Aid-Link provides a centralized platform for managing volunteering opportunities and connecting volunteers with organizations.

The application supports two types of users:

  • ๐Ÿ‘ค Volunteers โ€“ Browse and search for volunteering opportunities and register for events.
  • ๐Ÿข Organizations โ€“ Create and manage volunteering opportunities and review registered volunteers.

The application uses Firebase for authentication, cloud data storage, file storage, and notifications.


โœจ Features

๐Ÿ” Authentication

  • Email & password authentication
  • Google Sign-In
  • Remember Me functionality
  • Password reset via email
  • User session management
  • Automatic redirection for remembered users

๐Ÿ‘ค Volunteer

Volunteers can:

  • Create a volunteer account

  • Browse available volunteering opportunities

  • Search posts by:

    • Title
    • Description
    • Category
    • Organization
  • View additional opportunity details

  • Register for volunteering opportunities

  • Unregister from opportunities

  • Receive registration notifications

๐Ÿข Organization

Organizations can:

  • Create an organization account
  • Upload organization images
  • Upload supporting PDF documents
  • Create volunteering opportunities
  • Edit existing posts
  • Delete posts
  • View registered volunteers
  • Select/approve volunteers
  • Deactivate opportunities after volunteers are approved
  • Send notifications to approved volunteers

๐Ÿ“ข Notifications

The application includes a notification system using Firebase:

  • Registration confirmation notifications
  • Volunteer approval notifications
  • Firebase Cloud Messaging (FCM) token management
  • Notifications stored in Firestore

๐Ÿ“ฑ User Interface

The application uses:

  • Android Activities
  • Android Fragments
  • RecyclerView
  • Material Design components
  • Bottom navigation
  • Search functionality
  • Role-based UI behavior

๐Ÿ—๏ธ Architecture

The project is structured around Android Activities, Fragments, model classes, and Firebase services.

Main application flow

                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚   Aid-Link App  โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚   Login Page  โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                โ”‚                         โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
        โ”‚    Volunteer  โ”‚       โ”‚   Organization  โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                โ”‚                         โ”‚
                โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
                     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                     โ”‚   Dashboard   โ”‚
                     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                             โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚              โ”‚              โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”
        โ”‚   Home    โ”‚  โ”‚  Profile  โ”‚  โ”‚ Settings โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
              โ”‚
        โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”
        โ”‚   Posts   โ”‚
        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”ฅ Firebase

Aid-Link uses several Firebase services:

Firebase Authentication

Used for:

  • Email/password authentication
  • Google authentication
  • Account creation
  • Password reset
  • Sign-out

Cloud Firestore

Used to store application data such as:

users
organizations
posts
notifications

Posts contain information such as:

  • Title
  • Description
  • Date
  • Location
  • Category
  • Organization
  • Image URL
  • Registered volunteers
  • Active status

Firebase Storage

Used for organization-related files, including:

  • Images
  • PDF documents

Firebase Cloud Messaging

FCM is used to manage notification tokens and deliver notifications to users.


๐Ÿงฉ Main Components

Activities

Activity Purpose
MainActivity Login and authentication
RegistrationTypeActivity Select volunteer or organization registration
VolunteerRegistrationActivity Volunteer registration
OrganizationRegistrationActivity Organization registration
ForgotPasswordActivity Password reset
DashboardActivity Main application dashboard
PostActivity Create/edit volunteering posts

Fragments

Fragment Purpose
HomeFragment Display and search volunteering opportunities
ProfileFragment User profile
SettingsFragment Application settings and sign-out

Models

Class Purpose
User Represents an application user
Post Represents a volunteering opportunity
UserSession Manages the current user's local session

Adapters

PostAdapter manages the display and interaction of volunteering posts inside the RecyclerView.


๐Ÿ”„ Example User Flow

Volunteer

Register
   โ†“
Login
   โ†“
Dashboard
   โ†“
Browse Opportunities
   โ†“
Search / View Details
   โ†“
Register
   โ†“
Receive Notification

Organization

Register
   โ†“
Upload Organization Information
   โ†“
Login
   โ†“
Dashboard
   โ†“
Create Opportunity
   โ†“
Receive Volunteer Registrations
   โ†“
Review Volunteers
   โ†“
Approve Volunteers
   โ†“
Opportunity Becomes Inactive
   โ†“
Approved Volunteers Receive Notification

๐Ÿ› ๏ธ Technologies

  • Android
  • Java
  • Kotlin
  • XML
  • Firebase Authentication
  • Cloud Firestore
  • Firebase Storage
  • Firebase Cloud Messaging (FCM)
  • Google Sign-In
  • Material Components
  • RecyclerView
  • SharedPreferences
  • Gson

๐Ÿ“‚ Project Structure

A simplified view of the project structure:

app/
โ””โ”€โ”€ src/
    โ””โ”€โ”€ main/
        โ”œโ”€โ”€ java/
        โ”‚   โ””โ”€โ”€ com/example/welcom/
        โ”‚       โ”œโ”€โ”€ MainActivity.java
        โ”‚       โ”œโ”€โ”€ DashboardActivity.java
        โ”‚       โ”œโ”€โ”€ PostActivity.java
        โ”‚       โ”œโ”€โ”€ RegistrationTypeActivity.java
        โ”‚       โ”œโ”€โ”€ VolunteerRegistrationActivity.java
        โ”‚       โ”œโ”€โ”€ OrganizationRegistrationActivity.kt
        โ”‚       โ”œโ”€โ”€ ForgotPasswordActivity.java
        โ”‚       โ”‚
        โ”‚       โ”œโ”€โ”€ HomeFragment.java
        โ”‚       โ”œโ”€โ”€ ProfileFragment.java
        โ”‚       โ”œโ”€โ”€ SettingsFragment.java
        โ”‚       โ”‚
        โ”‚       โ”œโ”€โ”€ Post.java
        โ”‚       โ”œโ”€โ”€ PostAdapter.java
        โ”‚       โ”œโ”€โ”€ User.java
        โ”‚       โ””โ”€โ”€ UserSession.java
        โ”‚
        โ””โ”€โ”€ res/
            โ”œโ”€โ”€ layout/
            โ”œโ”€โ”€ menu/
            โ”œโ”€โ”€ drawable/
            โ””โ”€โ”€ values/

๐Ÿš€ Getting Started

Prerequisites

Before running the project, make sure you have:

  • Android Studio
  • Android SDK
  • A Firebase project
  • A configured Android application in Firebase

Installation

  1. Clone the repository:
git clone https://github.com/<your-username>/Aid-Link.git
  1. Open the project in Android Studio.

  2. Connect the project to Firebase.

  3. Add the required Firebase configuration file:

google-services.json

to:

app/
  1. Sync the Gradle project.

  2. Build and run the application on an Android device or emulator.


๐Ÿ”’ Security Note

Firebase configuration and authentication credentials should not be committed to a public repository.

Before publishing the project, make sure that:

  • API keys and credentials are handled appropriately.
  • Firebase Security Rules are configured correctly.
  • Server-side credentials are never stored directly in the Android application.
  • Sensitive FCM credentials are not hardcoded in client-side code.

๐Ÿ”ฎ Future Improvements

Potential improvements include:

  • Improved profile management
  • Full notification center
  • Push notification architecture improvements
  • Better post creation UI
  • Image previews for posts
  • Location/map integration
  • Volunteer history
  • Organization dashboards
  • Improved role-based permissions
  • Better Firebase security rules
  • Improved error handling
  • UI/UX improvements
  • Migration toward a cleaner architectural pattern such as MVVM

๐ŸŽฏ Project Goal

Aid-Link aims to make volunteering more accessible by providing a simple platform where organizations can publish opportunities and volunteers can discover and participate in them.

Connect. Volunteer. Make an impact. ๐Ÿค

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages