A secure and transparent crowdfunding platform for charitable organizations
- Overview
- Features
- Technology Stack
- System Architecture
- Getting Started
- API Documentation
- Database Schema
- Security
- Contributing
- Contact
CauseBank revolutionizes charitable fundraising by providing a secure, transparent, and efficient platform for organizations to raise funds. Our platform implements rigorous verification processes and maintains complete transparency in all transactions.
-
Organization Verification System
- Tax ID validation
- Registration documentation verification
- KYC compliance checks
- Bank account validation
-
Secure Payment Processing
- Integrated payment gateway
- Transparent 5% transaction fee
- Real-time transaction monitoring
- Automated receipt generation
-
Advanced Search & Analytics
- Multi-parameter search functionality
- Category-based filtering
- Advanced analytics dashboard
- Donation tracking and reporting
-
Security Features
- OAuth 2.0 implementation
- Data encryption at rest and in transit
- GDPR compliance
- Regular security audits
-
Backend
- Spring Boot 2.6.x
- PostgreSQL 13
- AWS Services (S3, EC2, RDS)
- JWT Authentication
-
Frontend
- React 17.0.2
- Redux for state management
- Material-UI components
- Responsive design
-
DevOps
- Docker
- CI/CD with GitHub Actions
- AWS deployment
- Swagger for API documentation
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ └── utils/
│ └── public/
├── backend/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ └── resources/
│ │ └── test/
│ └── pom.xml
└── docker/
- Java 11 or higher
- Node.js 14+
- PostgreSQL 13+
- Docker
- AWS Account
# Clone the repository
git clone https://github.com/bifenzine/CauseBank-Crowdfunding-Platform-for-Charities.git
# Backend setup
cd backend
./mvnw clean install
# Frontend setup
cd frontend
npm install
# Start development servers
# Backend
./mvnw spring-boot:run
# Frontend
npm start
API documentation is available at http://localhost:8081/swagger-ui.html
when running locally.
- 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