The Charity App is a web-based platform designed to facilitate donations, manage campaigns, and connect donors with charitable organizations. It is built using Java Spring Boot for the backend and integrates a responsive frontend with Bootstrap.
- Campaigns: Create, view, and manage donation campaigns.
- Donor Profiles: Manage donor information and track contributions.
- Payment Integration: Secure payment processing for donations.
- Authentication: Secure login and registration.
- Role-Based Access: Different roles such as Admin, Donor, and Organization.
- Profile Management: Update user profiles and preferences.
- CRUD Operations: Create, read, update, and delete campaigns.
- Media Uploads: Upload images and videos to campaigns.
- Progress Tracking: Visualize campaign progress with dynamic charts.
- Bootstrap Integration: Styled using Bootstrap for responsive layouts.
- Custom CSS: Additional styling for unique components.
- Java Spring Boot: Framework for building the backend.
- MySQL: Database for storing user, campaign, and donation data.
- Hibernate: ORM for database operations.
- HTML5: Structure and content.
- CSS3: Styling with custom and Bootstrap classes.
- JavaScript: Frontend interactivity.
- Maven: Dependency management and build tool.
- Bootstrap: Responsive design framework.
The project follows the Model-View-Controller (MVC) design pattern:
- Model: Represents the data and business logic. For example, models like
Campaign,Donation, andUserdefine the structure of the database entities. - View: Handles the user interface. HTML templates in the
src/main/resources/templatesdirectory render dynamic content. - Controller: Acts as the intermediary between the Model and View. Controllers like
CampaignControllerandUserControllerprocess user input and return responses.
charity-app/
├── .gitattributes
├── .gitignore
├── bs-config.js
├── mvnw
├── mvnw.cmd
├── package.json
├── pom.xml
├── .mvn/
│ └── wrapper/
├── src/
│ ├── main/
│ │ ├── java/
│ │ ├── resources/
│ │ │ ├── static/
│ │ │ │ ├── css/
│ │ │ │ ├── js/
│ │ │ │ ├── images/
│ │ │ ├── templates/
│ │ └── webapp/
│ ├── test/
├── uploads/
│ ├── 07fac07a-7afe-4b20-b83d-2e11594d4781_pexels-kampus-7551581.jpg
│ ├── 1fb0fd9e-2add-4eb0-a385-7763c683c75d_pexels-cottonbro-6591148.jpg
│ ├── ...
- Clone the repository:
git clone <repository-url>
- Set up a MySQL database and update the connection string in
application.properties. - Build the project using Maven:
mvn clean install
- Run the application:
mvn spring-boot:run
- Open the application in your browser at
http://localhost:8080.