HopeBridge is a crowdfunding platform that connects donors with nonprofits and causes worldwide. The platform enables users to discover, donate to, and track the impact of various charitable projects across the globe.
- Features
- Technology Stack
- Project Structure
- Getting Started
- Testing
- Test Accounts
- Gift Card Codes
- Voice Commands
- API Documentation
- Deployment
- Contributing
- License
- User Authentication: Secure login and registration with social login options
- Campaign Discovery: Browse, search, and filter campaigns by category, location, and more
- Donation Processing: Secure payment processing with Stripe/PayPal integration
- User Dashboard: Track donations, saved campaigns, and personal information
- Campaign Management: For nonprofits to create and manage fundraising campaigns
- Impact Tracking: Real-time updates on campaign progress and impact
- Responsive Design: Fully responsive UI that works on all devices
- Gift Cards: Purchase and redeem gift cards for charitable donations
- Accessibility: Enhanced accessibility features with react-axe and react-aria
- Voice Commands: Navigate the application using voice commands
- React.js
- Material-UI
- Redux for state management
- React Router for navigation
- Jest and React Testing Library for testing
- i18next for internationalization
- Firebase integration
- Socket.io for real-time features
- Recharts for data visualization
- Django (Python) with Django REST Framework
- JWT for authentication
- PostgreSQL for database
- Redis for caching
- Celery for background tasks
- Channels and Daphne for WebSocket support
- Google Generative AI integration
- AWS S3 for file storage
- AWS EC2 for hosting
- Docker for containerization
- Nginx as a reverse proxy
- Let's Encrypt for SSL
- Stripe for payment processing
- SendGrid for email notifications
- Google Maps API for location services
- Social login providers (Google, Facebook)
hopebridge/
├── frontend/ # React frontend application
│ ├── public/ # Static files
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ ├── utils/ # Utility functions
│ │ ├── tests/ # Frontend tests
│ │ └── App.js # Main application component
│ └── package.json # Frontend dependencies
├── backend/ # Django backend application
│ ├── about/ # About page models and API
│ ├── accounts/ # User authentication and profiles
│ ├── campaigns/ # Campaign models and API
│ ├── donations/ # Donation processing
│ ├── core/ # Core functionality
│ ├── gift_cards/ # Gift card functionality
│ ├── events/ # Events management
│ ├── disasters/ # Disaster relief campaigns
│ ├── ai_chatbot/ # AI chatbot integration
│ └── hopebridge/ # Django project settings
├── docker/ # Docker configuration
├── docs/ # Documentation
└── README.md # Project overview
- Node.js (v14 or higher)
- Python (v3.8 or higher)
- PostgreSQL
- Redis
-
Clone the repository:
git clone https://github.com/competitiveumar/HopeBridge.git cd HopeBridge -
Set up the frontend:
cd frontend npm install # Install additional frontend dependencies npm install firebase socket.io-client --legacy-peer-deps npm install i18next react-i18next react-axe --legacy-peer-deps npm install i18next-http-backend i18next-browser-languagedetector --save npm install react-aria react-focus-on --save npm install --save-dev source-map-loader npm install @craco/craco --save-dev npm install mui-tel-input --legacy-peer-deps npm install react-helmet npm install react-helmet-async --legacy-peer-deps npm install recharts
-
Set up the backend:
cd backend python -m venv .venv # On Windows: .venv\Scripts\Activate.ps1 # On Unix/MacOS: source .venv/bin/activate pip install -r requirements.txt # Install additional backend dependencies pip install channels channels-redis daphne pip install psutil pip install google-generativeai
-
Set up environment variables:
- Create a
.envfile in the backend directory based on.env.example - Create a
.envfile in the frontend directory based on.env.example
- Create a
-
Initialize the database:
cd backend python manage.py makemigrations python manage.py migrate python manage.py createsuperuser python manage.py loaddata initial_data
-
Start the backend server:
cd backend .venv\Scripts\Activate.ps1 # On Windows # source .venv/bin/activate # On Unix/MacOS python manage.py runserver
-
Start the frontend development server:
cd frontend npm start -
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000/api/
- Admin interface: http://localhost:8000/admin/
cd frontend
npm testcd backend
python manage.py test-
Email: avabob@gmail.com Password: a1b2c3d4
-
Email: johnsmith@gmail.com Password: a5b6v7f8&
-
Email: andrewjohnson@gmail.com Password: a1b2c3d4
-
Email: susanevans@gmail.com Password: a1b2c3d4
The following gift card codes can be used for testing:
- HOPE25: £25 gift card
- GIVE50: £50 gift card
- CARE75: £75 gift card
- HELP100: £100 gift card
The application supports voice navigation. Use the following format:
"Go to [name of page or action]"
Examples:
- "Go to Home"
- "Go to Donations"
- "Go to About Us"
- "Go to My Account"
API documentation is available at /api/docs/ when the backend server is running. It provides detailed information about all available endpoints, request/response formats, and authentication requirements.
-
Build the Docker images:
docker-compose build
-
Start the containers:
docker-compose up -d
-
Access the application at http://localhost
Detailed instructions for deploying to various environments (AWS, Heroku, etc.) can be found in the docs/deployment.md file.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.