# rasel3413/jubloodbank architecture

> Architecture diagram of the GitHub repository rasel3413/jubloodbank, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rasel3413/jubloodbank
- Repository: https://github.com/rasel3413/jubloodbank

## Overview

JU Blood Bank is an Android app for connecting blood donors and recipients. Its documented user journey covers account creation, donor search, donation scheduling, urgent requests, community participation, and updates. The tree provides corresponding Kotlin modules, but the sampled source contains no application code, so edges below represent README-described workflow and capabilities—not verified runtime calls. Some README features, especially appointment scheduling and community, have no clearly named dedicated module in the tree.

Main entry points: [`app/src/main/java/com/example/jubloodbank/registration/RegistrationActivity.kt`](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/registration/RegistrationActivity.kt) (Registration), [`app/src/main/java/com/example/jubloodbank/login/LoginActivity.kt`](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/login/LoginActivity.kt) (Login), [`app/src/main/java/com/example/jubloodbank/ProfileActivity.kt`](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/ProfileActivity.kt) (User profile), [`app/src/main/java/com/example/jubloodbank/searchdonor/SearchDonorActivitiy.kt`](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/searchdonor/SearchDonorActivitiy.kt) (Donor search)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_account["Accounts and profiles"]
  node_registration["Registration"]
  node_login["Login<br/>[LoginActivity.kt]"]
  node_profile["User profile<br/>[ProfileActivity.kt]"]
  node_profile_update["Profile updates"]
end

subgraph group_donations["Donor and donation workflows"]
  node_donor_search["Donor search"]
  node_donation_schedule["Donation scheduling"]
  node_blood_list["Blood donor list"]
end

subgraph group_community["Requests and community"]
  node_urgent_request["Blood requests"]
  node_request_feed["Request feed"]
  node_community_support["Community support"]
end

subgraph group_updates["Messaging and updates"]
  node_messaging["Messages<br/>[MessageActivity.kt]"]
  node_notifications["Notifications"]
end

node_user(("App user"))

node_user -->|"signs up"| node_registration
node_user -->|"logs in"| node_login
node_registration -->|"creates profile"| node_profile
node_user -->|"finds donors"| node_donor_search
node_user -->|"schedules donation"| node_donation_schedule
node_user -->|"responds to requests"| node_urgent_request
node_user -->|"joins community"| node_community_support
node_user -->|"receives updates"| node_notifications

click node_registration "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/registration/RegistrationActivity.kt"
click node_login "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/login/LoginActivity.kt"
click node_profile "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/ProfileActivity.kt"
click node_profile_update "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/UpdateProfileActivity.kt"
click node_donor_search "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/searchdonor/SearchDonorActivitiy.kt"
click node_donation_schedule "https://github.com/rasel3413/jubloodbank/tree/master/app/src/main/java/com/example/jubloodbank"
click node_blood_list "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/bloodlist/BloodListActivity.kt"
click node_urgent_request "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/requestblood/RequestBloodActivity.kt"
click node_request_feed "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/feeds/BloodRequestActivity.kt"
click node_community_support "https://github.com/rasel3413/jubloodbank/tree/master/app/src/main/java/com/example/jubloodbank/feeds"
click node_messaging "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/messageservice/MessageActivity.kt"
click node_notifications "https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/messageservice/MyFirebaseMessagingService.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_registration,node_login,node_profile,node_profile_update,node_user toneBlue
class node_donor_search,node_donation_schedule,node_blood_list toneAmber
class node_urgent_request,node_request_feed,node_community_support toneMint
class node_messaging,node_notifications toneRose
```

## Components

### Accounts and profiles

- [Registration](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/registration/RegistrationActivity.kt): `app/src/main/java/com/example/jubloodbank/registration/RegistrationActivity.kt`
- [Login](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/login/LoginActivity.kt): `app/src/main/java/com/example/jubloodbank/login/LoginActivity.kt`
- [User profile](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/ProfileActivity.kt): `app/src/main/java/com/example/jubloodbank/ProfileActivity.kt`
- [Profile updates](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/UpdateProfileActivity.kt): `app/src/main/java/com/example/jubloodbank/UpdateProfileActivity.kt`

### Donor and donation workflows

- [Donor search](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/searchdonor/SearchDonorActivitiy.kt): `app/src/main/java/com/example/jubloodbank/searchdonor/SearchDonorActivitiy.kt`
- [Donation scheduling](https://github.com/rasel3413/jubloodbank/tree/master/app/src/main/java/com/example/jubloodbank): `app/src/main/java/com/example/jubloodbank`
- [Blood donor list](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/bloodlist/BloodListActivity.kt): `app/src/main/java/com/example/jubloodbank/bloodlist/BloodListActivity.kt`

### Requests and community

- [Blood requests](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/requestblood/RequestBloodActivity.kt): `app/src/main/java/com/example/jubloodbank/requestblood/RequestBloodActivity.kt`
- [Request feed](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/feeds/BloodRequestActivity.kt): `app/src/main/java/com/example/jubloodbank/feeds/BloodRequestActivity.kt`
- [Community support](https://github.com/rasel3413/jubloodbank/tree/master/app/src/main/java/com/example/jubloodbank/feeds): `app/src/main/java/com/example/jubloodbank/feeds`

### Messaging and updates

- [Messages](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/messageservice/MessageActivity.kt): `app/src/main/java/com/example/jubloodbank/messageservice/MessageActivity.kt`
- [Notifications](https://github.com/rasel3413/jubloodbank/blob/master/app/src/main/java/com/example/jubloodbank/messageservice/MyFirebaseMessagingService.kt): `app/src/main/java/com/example/jubloodbank/messageservice/MyFirebaseMessagingService.kt`

### Other components

- **App user**

## Connections

- App user → Registration: signs up (evidence: `README.md`)
- App user → Login: logs in (evidence: `README.md`)
- Registration → User profile: creates profile (evidence: `README.md`)
- App user → Donor search: finds donors (evidence: `README.md`)
- App user → Donation scheduling: schedules donation (evidence: `README.md`)
- App user → Blood requests: responds to requests (evidence: `README.md`)
- App user → Community support: joins community (evidence: `README.md`)
- App user → Notifications: receives updates (evidence: `README.md`)
