A comprehensive full-stack donation management platform built with modern web technologies.
- Separate donor and receiver authentication
- JWT-based session management
- Role-based access control
- Multi-category donation system (clothes, stationary, food, furniture, electronics)
- Image upload with Cloudinary integration
- Real-time status tracking
- Automatic request-donation matching
- Request creation and tracking
- Automatic fulfillment detection
- Status management (pending, approved, fulfilled, rejected)
- Real-time dashboard with statistics
- Complete donation and request history
- Status management for matched donations
- Comprehensive reporting
- Node.js with Express.js
- MongoDB with Mongoose ODM
- JWT for authentication
- Multer + Cloudinary for file uploads
- bcrypt for password hashing
- React with Vite
- Tailwind CSS for styling
- Axios for API calls
- React Router for navigation
- React with modern UI components
- Lucide React for icons
- Responsive design with Tailwind CSS
MasterCard CFC/
βββ Backend/
β βββ Controllers/ # Business logic
β βββ Models/ # Database schemas
β βββ Routes/ # API endpoints
β βββ Config/ # Passport configuration
β βββ Middlewares/ # Authentication middleware
β βββ Services/ # Business services
β βββ Utils/ # Utility functions
β βββ index.js # Server entry point
βββ Frontend/
β βββ src/
β β βββ components/ # React components
β β βββ hooks/ # Custom hooks
β β βββ assets/ # Static assets
β βββ package.json
βββ admin/
β βββ src/
β β βββ components/ # Admin UI components
β β βββ pages/ # Admin pages
β β βββ services/ # API services
β β βββ utils/ # Helper functions
β βββ package.json
βββ README.md
- Node.js (v14 or higher)
- MongoDB
- Cloudinary account (for image uploads)
-
Navigate to Backend directory:
cd Backend -
Install dependencies:
npm install
-
Create
.envfile with:MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
-
Start the server:
npm start
-
Navigate to Frontend directory:
cd Frontend -
Install dependencies:
npm install
-
Start development server:
npm run dev
-
Navigate to admin directory:
cd admin -
Install dependencies:
npm install
-
Start development server:
npm run dev
POST /api/donor/signup- Donor registrationPOST /api/donor/signin- Donor loginPOST /api/receiver/signup- Receiver registrationPOST /api/receiver/signin- Receiver login
POST /api/donation/donate- Create donationGET /api/donation/all- Get all donations
POST /api/request/create- Create requestGET /api/request/all- Get all requests
GET /api/admin/dashboard- Dashboard statisticsGET /api/admin/history- Complete historyGET /api/admin/matched-donations- Matched donationsPUT /api/admin/donations/:id/status- Update donation status
- Smart algorithm matches donations with requests
- Real-time status updates
- Automatic fulfillment detection
- Secure image uploads to Cloudinary
- Category-based file organization
- Image optimization and transformation
- Real-time statistics and analytics
- Complete transaction history
- Status management interface
- JWT token-based authentication
- Password hashing with bcrypt
- Protected API routes
- Input validation and sanitization
- CORS configuration
- Responsive design for all screen sizes
- Modern and intuitive interface
- Loading states and error handling
- Smooth animations and transitions
- Accessibility considerations
- 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
This project is licensed under the MIT License.
- Built for MasterCard CFC (Code for Change) initiative
- Inspired by the need for efficient donation management systems
- Thanks to all contributors and supporters
Happy Coding! π