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.
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.
- Email & password authentication
- Google Sign-In
- Remember Me functionality
- Password reset via email
- User session management
- Automatic redirection for remembered users
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
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
The application includes a notification system using Firebase:
- Registration confirmation notifications
- Volunteer approval notifications
- Firebase Cloud Messaging (FCM) token management
- Notifications stored in Firestore
The application uses:
- Android Activities
- Android Fragments
- RecyclerView
- Material Design components
- Bottom navigation
- Search functionality
- Role-based UI behavior
The project is structured around Android Activities, Fragments, model classes, and Firebase services.
โโโโโโโโโโโโโโโโโโโ
โ Aid-Link App โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโผโโโโโโโโ
โ Login Page โ
โโโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโ
โ โ
โโโโโโโโโผโโโโโโโโ โโโโโโโโโโผโโโโโโโโโ
โ Volunteer โ โ Organization โ
โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
โ
โโโโโโโโโผโโโโโโโโ
โ Dashboard โ
โโโโโโโโโฌโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโโผโโโโโโ โโโโโโโผโโโโโโ โโโโโโผโโโโโโ
โ Home โ โ Profile โ โ Settings โ
โโโโโโโฌโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโ
โ
โโโโโโโผโโโโโโ
โ Posts โ
โโโโโโโโโโโโโ
Aid-Link uses several Firebase services:
Used for:
- Email/password authentication
- Google authentication
- Account creation
- Password reset
- Sign-out
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
Used for organization-related files, including:
- Images
- PDF documents
FCM is used to manage notification tokens and deliver notifications to users.
| 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 |
| Fragment | Purpose |
|---|---|
HomeFragment |
Display and search volunteering opportunities |
ProfileFragment |
User profile |
SettingsFragment |
Application settings and sign-out |
| Class | Purpose |
|---|---|
User |
Represents an application user |
Post |
Represents a volunteering opportunity |
UserSession |
Manages the current user's local session |
PostAdapter manages the display and interaction of volunteering posts inside the RecyclerView.
Register
โ
Login
โ
Dashboard
โ
Browse Opportunities
โ
Search / View Details
โ
Register
โ
Receive Notification
Register
โ
Upload Organization Information
โ
Login
โ
Dashboard
โ
Create Opportunity
โ
Receive Volunteer Registrations
โ
Review Volunteers
โ
Approve Volunteers
โ
Opportunity Becomes Inactive
โ
Approved Volunteers Receive Notification
- Android
- Java
- Kotlin
- XML
- Firebase Authentication
- Cloud Firestore
- Firebase Storage
- Firebase Cloud Messaging (FCM)
- Google Sign-In
- Material Components
- RecyclerView
- SharedPreferences
- Gson
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/
Before running the project, make sure you have:
- Android Studio
- Android SDK
- A Firebase project
- A configured Android application in Firebase
- Clone the repository:
git clone https://github.com/<your-username>/Aid-Link.git-
Open the project in Android Studio.
-
Connect the project to Firebase.
-
Add the required Firebase configuration file:
google-services.json
to:
app/
-
Sync the Gradle project.
-
Build and run the application on an Android device or emulator.
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.
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
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. ๐ค