This project is a web application designed to connect blood donors, recipients, and volunteers. It includes features like user role management, donation request handling, and content creation. Donors can manage profiles and donation requests, while volunteers can update donation statuses and manage requests. Admins have full control over user accounts, donation management, and blog content. The platform also supports secure payments through Stripe for funding donations. It is built with a responsive design, ensuring usability across mobile, tablet, and desktop devices. The application leverages Firebase authentication, JWT tokens for security, and integrates with MongoDB for efficient data management.
BloodBridge is a full-stack web application I built to connect blood donors with recipients in need. The project was a hands-on way for me to learn and apply the MERN stack (MongoDB, Express.js, React, Node.js) in a real-world project context. It focuses on key areas like role-based access control, user authentication, and data management—providing a user-friendly interface for managing blood donations.
The Register Page lets users create an account by entering their email, name, and password. Users can upload a profile picture, select their blood group, and choose their district and upazila from dropdown menus. There is also a password confirmation field to avoid mistakes. If users already have an account, they can click the link to go to the login page. The process is simple and quick, making it easy to start using the platform.
The landing page introduces the platform, highlighting its purpose to connect blood donors with recipients, and provides easy navigation to key sections like Blogs, Requests, and Funding. The page also includes a profile dropdown for users to access their dashboard for managing their accounts and other features based on their roles.
The donor dashboard allows donors to manage their profiles, create and edit donation requests, and view or delete existing requests. Donors can also respond to messages or actions related to their donation requests, ensuring they stay informed and connected with recipients.
The volunteer dashboard provides tools for managing donation requests and viewing platform statistics. Volunteers can access a list of all donation requests, edit their details, and update their statuses to ensure accurate tracking. They can view statistical data, including the total number of users, active funding contributions, and blood donation requests.
This dashboard is designed to help volunteers focus on monitoring and maintaining the accuracy of information across the platform. Volunteers do not have access to user management or funding controls, keeping their scope of actions specific to donation-related tasks.
The blogging tool allows both volunteers and admins to create, edit, and publish blog posts using a simple rich-text editor. It supports basic formatting options like headings, bold, italics, bullet points, and hyperlinks. Users can add images, format text, and organize content for better readability. Admins have full control over the publication, while volunteers can write and submit posts for review. This tool is designed to make content creation straightforward and ensure blogs are easy to read and manage.
The admin dashboard allows full control over user management. Admins can view all user accounts, block or unblock users, and change user roles (Admin, Volunteer, Donor). They can quickly search for specific users and make necessary adjustments. This ensures that admins can manage platform users efficiently, ensuring appropriate access and maintaining smooth operation.
The blog management section gives admins the ability to create, edit, publish, and delete blog posts. They can oversee all content, ensuring it is accurate and aligned with the platform’s goals. Admins can manage the entire lifecycle of a blog post, from drafting to publication, and remove any content if needed. This feature ensures the platform's blog section remains organized and up to date.
Admins can manage all donation requests through the dashboard. They have the ability to create new requests, edit existing ones, delete irrelevant or outdated requests, and view details of all donation requests on the platform. This gives admins full oversight and control over the blood donation process, ensuring requests are properly handled and updated.
The BloodBridge platform is designed to be fully responsive, meaning it adapts to different devices, including mobile phones, tablets, and desktop computers. The interface adjusts to various screen sizes, offering users a consistent and user-friendly experience across all devices. This ensures accessibility and ease of use, regardless of how users access the platform.
Working on this project has given me valuable experience in building a full-stack application with real-world functionality. It taught me how to implement secure user authentication, particularly protecting private API endpoints using JWT tokens. This allowed me to handle role-based access and ensure that sensitive data was only accessible to authorized users. I also gained hands-on experience with integrating third-party services like Stripe for payment processing. Overall, the project strengthened my skills in both front-end and back-end development, helping me understand the complexities of building and securing a full-stack web application.