Welcome to LifeFlow, a comprehensive platform designed to streamline blood donation by connecting donors, recipients, and volunteers. This README provides an overview of the features, installation steps, and additional information to help you get started.
Visit the live website: LifeFlow
-
Admin Email: [email protected]
-
Password: Pa$$w0rd!
-
Donor: Just create an account normally.
-
Volunteer: Create a user volunteer from the admin dashboard.
-
User Roles and Permissions:
- Admin: Full access to all features, including user management, donation requests, and content management.
- Donor: Register, view, respond to donation requests, and maintain profiles.
- Volunteer: Create and manage donation requests.
-
User Registration and Authentication:
- Register with email, name, avatar, blood group, district, upazila, and password.
- Default role for new users is "Donor".
- Secure login for registered users.
-
Dashboard:
- Profile Page: View and update personal information.
- Donor Dashboard: Manage recent donation requests.
- Admin Dashboard: Oversee user data, donation requests, and content.
- Volunteer Dashboard: Manage donation requests with limited permissions.
-
Donation Requests:
- Create, edit, view, and delete donation requests.
- Manage request status: pending, in-progress, done, and canceled.
- Blocked users cannot create requests.
-
Content Management:
- Create, edit, and manage blog content.
- Publish or save blogs as drafts.
- Only admins can delete blogs and change their status.
-
Home Page:
- Banner with "Join as a donor" and "Search Donors" buttons.
- Featured sections and a contact form.
-
Search Page:
- Search for donors by blood group, district, and upazila.
-
Public Donation Requests:
- Display all pending donation requests.
- View detailed information about each request.
-
Blog Page:
- Show all published blogs with detailed content.
-
Funding Page:
- Display user contributions with names and amounts.
- Integrated Stripe for secure donations.
-
JWT Authentication:
- Secure login and protected API endpoints using JWT.
-
Email Notifications:
- Used Nodemailer for sending email notifications.
- Node.js
- MongoDB
- Firebase for hosting
-
Clone the repositories:
git clone https://github.com/mdimamhosen/LifeFlow-Client git clone https://github.com/mdimamhosen/LifeFlow-Server
-
Install dependencies:
cd b9a12-client-side-mdimamhosen npm install cd ../b9a12-server-side-mdimamhosen npm install
-
Configure environment variables:
- Create a
.envfile in the server directory and add MongoDB URI, JWT secret, and other necessary variables.
- Create a
-
Run the client and server:
cd b9a12-client-side-mdimamhosen npm start cd ../b9a12-server-side-mdimamhosen npm start
- Deploy the client on Firebase or other hosting services.
- Deploy the server on Heroku, Vercel, or any VPS provider.
Thank you for using LifeFlow! Your contributions and feedback are always welcome.