Charity Hub is a robust Spring Boot platform for managing charitable cases and contributions.
- Secure: Built with Spring Security and JWT authentication, ensuring secure access to sensitive charitable data and user information.
- Scalable: Leverages Spring Modulith architecture and MongoDB for efficient data management and system scalability.
- Real-time: Integrates Firebase Cloud Messaging for instant notifications across web and mobile platforms.
Charity Hub requires the following prerequisites:
- Java 17 or higher
- MongoDB
- Firebase Admin credentials
Get started in minutes:
# Clone the repository
git clone https://github.com/hibrahem/charity_hub.git
# Build the project
./gradlew build
# Run the application
./gradlew bootRunTo run this application, you need to set up a Firebase account and obtain the adminSdk.json file. Follow the steps below to do so:
- Create a Firebase Account and Project:
- Go to the Firebase Console.
- Click on "Add project" and follow the on-screen instructions to create a new Firebase project.
- Add Firebase to Your Application:
- In the Firebase project dashboard, click on the gear icon next to "Project Overview" and select "Project settings".
- Navigate to the "Service accounts" tab.
- Click on "Generate new private key" under the "Firebase Admin SDK" section.
- A JSON file will be downloaded to your computer. This file contains the necessary credentials for your Firebase project.
- Move the
adminSdk.jsonFile:
- Rename the downloaded JSON file to
adminSdk.json. - Create a folder named
certinside theresourcesfolder of your project. - Move the
adminSdk.jsonfile into thecertfolder.
The project is organized into several core modules:
-
Accounts Module
- Account authentication
- Role-based access control
- Profile management
-
Cases Module
- Manage charitable cases
- Track contributions/donations
- Handle case status updates
-
Ledger Module
- View and manage user contributions
- Fetch detailed ledger information for users
- Provide summary of pledged, paid, and confirmed contributions
- Manage hierarchical relationships between members
- Log events related to account creation and membership
-
Notifications Module
- Real-time push notifications
- Email notifications
- Event tracking
Charity Hub is built with modern technologies:
{
"backend": {
"language": "Java 17",
"framework": "Spring Boot 3.3.5",
"database": "MongoDB",
"security": ["Spring Security", "JWT"],
"messaging": "Firebase Cloud Messaging"
}
}We welcome contributions! Here's how you can help:
- 🐛 Report bugs by opening an issue
- 💡 Propose new features
- 📖 Improve documentation
- 🔍 Review pull requests
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Charity Hub is Apache 2.0 licensed.