HarvestHero is a platform designed to facilitate the connection between individuals, restaurants, grocery stores, and other donors with NGOs and charities. The platform aims to efficiently distribute various resources such as food, clothes, monetary donations, books, toys, medical supplies, technology, and other essentials to those in need.
The main purpose of HarvestHero is to streamline the donation process, making it easier for donors to contribute and for NGOs and charities to receive and distribute donations effectively. By providing a centralized platform, HarvestHero enables:
-
Efficient Donation Matching: Donors can easily find NGOs and charities that are in need of specific types of donations, ensuring that resources are distributed where they are most needed.
-
Enhanced Accessibility: Individuals, restaurants, grocery stores, and other potential donors can quickly connect with organizations dedicated to helping the community, fostering a sense of community engagement and support.
-
Transparency and Accountability: The platform promotes transparency by providing clear visibility into how donations are used and distributed by NGOs and charities, building trust among donors and the community.
-
Impact Tracking: HarvestHero allows users to track the impact of their donations, providing insights into the difference they are making in the lives of those who benefit from their contributions.
-
User Profiles: Donors and NGOs can create profiles detailing their donation preferences, needs, and impact stories.
-
Donation Matching: Algorithms match donors with relevant NGOs based on donation types and geographical preferences.
-
Secure Transactions: Built-in security measures ensure safe and reliable donation transactions.
- Framework: Next.js (v14.1.1)
- Language: TypeScript
- UI & Styling:
- Tailwind CSS
- Radix UI
- React Icons
- Lucide React
- Tailwind CSS Animate
- State Management: Recoil
- Theming:
next-themes - Notifications: React Toastify
- Animations: React Typed, React Fast Marquee
- PDF Support: React PDF
- Utilities: Axios, clsx, dotenv, sharp
- Runtime: Node.js with Express
- Language: TypeScript
- ORM: Prisma
- Authentication & Security:
- JSON Web Tokens (JWT)
- bcryptjs for password hashing
- CORS for security
- Database: PostgreSQL
- Caching:
- Redis (via ioredis)
- File Uploads: Multer
- Validation: Zod
- Mailing: Nodemailer
- Cloud Storage: Azure Blob Storage
- Image Processing: Sharp
- Environment Management: dotenv
- Dev Tools: ts-node, nodemon
- Sign Up: Create a donor or NGO profile to start donating or receiving donations.
- Explore Donations: Browse through available donations or create a donation request specifying your organization's needs.
- Connect and Donate: Connect with matching donors or NGOs and initiate donation transactions.
-
Clone the repository:
git clone https://github.com/sajalbatra/HarvestHero cd HarvestHero -
Install dependencies:
npm install
-
Setup Docker containers: To run PostgreSQL and Redis using Docker, follow these steps:
-
Create a
docker-compose.ymlfile:version: '3.8' services: postgres: image: postgres:13 container_name: postgres environment: POSTGRES_USER: your_postgres_user POSTGRES_PASSWORD: your_postgres_password POSTGRES_DB: your_database ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data redis: image: redis:latest container_name: redis ports: - "6379:6379" volumes: postgres_data:
-
Start the Docker containers:
docker-compose up -d
-
-
Start the development server:
npm run dev
The application will be available at
http://localhost:3000.
To deploy the application, you can use platforms like Heroku, Vercel, or any cloud provider of your choice.
We welcome contributions from the community! If you'd like to contribute, please follow these steps:
-
Fork the repository: Click the "Fork" button at the top right of this page to create your own copy of the repository.
-
Create a branch:
git checkout -b feature-branch
-
Make your changes: Implement your changes in the codebase.
-
Commit your changes:
git commit -m "Description of the changes" -
Push to the branch:
git push origin feature-branch
-
Create a pull request: Go to the original repository and click the "New Pull Request" button to submit your changes for review.
This project is licensed under the MIT License - see the LICENSE file for details.
We thank all our contributors and supporters who help make HarvestHero a success. Your efforts are greatly appreciated!