A comprehensive donation tracking platform that connects donors with meaningful campaigns and enables transparent fundraising for social causes.
GivingTree is a comprehensive donation and campaign management platform built with JavaFX that facilitates transparent fundraising and donation tracking. The platform enables users to create, discover, and contribute to various social causes including education, healthcare, environmental protection, community development, and more.
Our mission is to create a trusted ecosystem where donors can confidently support causes they care about, while campaign organizers can efficiently manage their fundraising efforts with complete transparency and accountability.
- JavaFX 19 - Modern Java framework for rich desktop applications
- FXML - Declarative UI markup language for JavaFX
- CSS - Custom styling for enhanced user interface
- Java 19 - Main programming language
- Maven - Dependency management and build automation
- JDBC - Database connectivity and operations
- MySQL - Relational database for data persistence
- IntelliJ IDEA - Recommended IDE for development
- XAMPP - Local development server (Apache + MySQL)
- phpMyAdmin - Database administration interface
- Secure user registration and login system
- Multi-role support (Contributors, Fundraisers, Admins)
- Profile management with personal information updates
- Password reset functionality with email verification
- Create new fundraising campaigns with detailed descriptions
- Set campaign goals and track progress in real-time
- Multiple campaign categories (Education, Medical, Environment, etc.)
- Campaign status management (Active, Suspended)
- Image upload support for campaign visualization
- Secure donation processing with multiple payment methods
- Real-time donation tracking and confirmation
- Donation history for both donors and campaign owners
- Payment status management (Completed, Refunded)
- Donation confirmation receipts
- Browse and discover active campaigns
- Advanced filtering by category and status
- Detailed campaign views with progress indicators
- Search functionality for finding specific campaigns
- My Campaigns - Manage created fundraising campaigns
- My Donated Campaigns - Track personal donation history
- Profile Management - Update personal information and preferences
- Notifications - Stay updated on campaign activities
- Comprehensive admin dashboard for platform oversight
- User management and verification
- Campaign monitoring and status controls
- Donation oversight and refund management
- System analytics and reporting
- Built-in messaging between users and administrators
- Help and support system
- Notifications for important updates
- Real-time campaign progress tracking
- Detailed donation breakdowns
- Payment method analytics
- Campaign performance metrics
- Java Development Kit (JDK) 19 or higher
- IntelliJ IDEA (recommended) or any Java IDE
- XAMPP (for local MySQL database)
- Maven (usually bundled with IDE)
-
Setup Database Environment
Download and install XAMPP from: https://www.apachefriends.org/ Start Apache and MySQL services in XAMPP Control Panel -
Configure Database
- Open phpMyAdmin:
http://localhost/phpmyadmin - Create a new database named
donation_tracker - Import the SQL file:
donation_tracker.sql - Verify all tables are created successfully
- Open phpMyAdmin:
-
Clone the Project
git clone https://github.com/M-R-Saad/GivingTree.git cd GivingTree -
Open in IDE
- Launch IntelliJ IDEA
- Open the project folder
- Allow Maven to download dependencies automatically
-
Configure Database Connection
- Navigate to
src/main/java/login/Constants.java - Update database credentials if necessary:
public static final String DATABASE_URL = "jdbc:mysql://localhost:3306/donation_tracker"; public static final String DATABASE_USERNAME = "root"; public static final String DATABASE_PASSWORD = "";
- Navigate to
-
Run the Application
- Navigate to
src/main/java/login/Login.java - Right-click and select "Run Login.main()"
- The application will launch with the login window
- Navigate to
GivingTree/
βββ src/main/java/login/ # Main application source code
β βββ Login.java # Application entry point
β βββ Homepage_Controller.java # Main dashboard controller
β βββ Campaign_Details_Controller.java # Campaign management
β βββ Donation_Payment_Controller.java # Payment processing
β βββ DiscoverCampaignController.java # Campaign discovery
β βββ Admin_Dashboard*.java # Administrative interfaces
β βββ Constants.java # Database configuration
β βββ *.java # Additional controllers and models
βββ src/main/resources/login/ # FXML UI files and resources
β βββ login.fxml # Login interface
β βββ homepage.fxml # Main dashboard
β βββ discover_campaigns.fxml # Campaign browser
β βββ donation_payment.fxml # Payment interface
β βββ *.fxml # Additional UI components
βββ donation_tracker.sql # Database schema and sample data
βββ pom.xml # Maven configuration
βββ README.md # This file
- Register/Login - Create an account or sign in to existing account
- Explore Campaigns - Browse active fundraising campaigns by category
- Make Donations - Support campaigns with secure payment options
- Track Impact - Monitor your donation history and campaign progress
- Manage Profile - Update personal information and preferences
- Create Campaigns - Launch new fundraising initiatives with detailed descriptions
- Set Goals - Define target amounts and campaign categories
- Track Progress - Monitor donations and campaign performance
- Manage Content - Upload images and update campaign information
- Communication - Interact with donors and supporters
- Platform Oversight - Monitor all campaigns and user activities
- User Management - Verify accounts and manage user permissions
- Campaign Control - Approve, suspend, or manage campaign status
- Financial Oversight - Track donations and process refunds when needed
- System Analytics - Generate reports and monitor platform performance
- Mobile Financial Services (MFS) - bKash, Rocket, Nagad
- Debit/Credit Cards - Visa, MasterCard, American Express
- Bank Transfer - Direct bank account transfers
- Secure password storage and authentication
- Session management for user security
- Input validation and SQL injection prevention
- Payment data protection and encryption
- Admin verification for sensitive operations
We welcome contributions to improve GivingTree! Here's how you can help:
- Fork the repository
- Create a 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
- UI/UX improvements and modern design updates
- Additional payment gateway integrations
- Enhanced security features
- Mobile application development
- API development for third-party integrations
- Performance optimizations
- Bug fixes and testing
The application uses a MySQL database with the following main tables:
- userdetails - User account information and profiles
- campaign - Fundraising campaign data and metadata
- donation - Individual donation records and payment details
- msg_details - Communication messages between users and admins
If you encounter any issues or have questions:
- GitHub Issues: Create an issue
- Email: Contact the development team
- Documentation: Refer to inline code comments and JavaDoc
This project is available under the MIT License. See the LICENSE file for details.
- JavaFX Community for the excellent desktop application framework
- MySQL for reliable database management
- Maven for streamlined dependency management
- All contributors and testers who helped improve this platform
Join our community of generous donors and dedicated fundraisers
Every donation plants a seed of hope!
Β© 2025 GivingTree. Empowering communities through transparent giving.