Skip to content

Repository files navigation

FindRedDrop

FindRedDrop is a modern blood donation platform built with Next.js that helps connect blood donors, patients, and supporters in a fast and secure way. The project is designed around a life-saving mission: making emergency blood requests easier to manage while giving donors and volunteers a simple way to participate.

Project Summary

This application provides a user-friendly experience for:

  • registering as a donor,
  • searching for compatible donors,
  • creating and managing blood donation requests,
  • supporting the organization through funding,
  • and managing the system through role-based dashboards.

Project Theme

The theme of the project is emergency healthcare and community support. It focuses on saving lives by making blood donation coordination faster, more transparent, and more accessible.

Key Features

  • User registration and login with authentication
  • Donor profile management with blood group, district, and upazila
  • Search donors by location and blood compatibility
  • Create, view, update, and manage blood donation requests
  • Role-based dashboards for Admin, Volunteer, and Donor users
  • Admin controls for managing users, requests, and funding
  • Volunteer access to donation request and funding management
  • Stripe-powered funding checkout for supporting the platform
  • Pagination for large lists such as users and requests
  • Responsive and modern UI with dark/light theme support

Roles and Authorization

The application currently supports 3 user roles:

  • Admin: full control over users, requests, funding, and platform management
  • Volunteer: can help manage blood requests and funding-related activities
  • Donor: default role for new registrants; can create and manage personal donation requests

Role-based authorization is implemented through protected dashboard routes and navigation so each role only sees the pages and actions intended for them.

Stripe Integration

FindRedDrop includes Stripe Checkout for funding support. Donors and supporters can contribute through a secure payment flow, and the app handles the success and cancellation experience.

File Handling and Image Upload Flow

The application accepts a profile image as an input during user registration. The selected file is captured from the form, converted into a FormData payload, and uploaded to ImgBB using the public API key.

Once the upload succeeds, the app receives a public image URL from ImgBB and stores that URL in the main user record in the database. In short:

  1. User selects an image from the registration form.
  2. The image is uploaded to ImgBB.
  3. ImgBB returns a direct image link.
  4. That link is saved in the main database record for the user profile.

This keeps the profile image accessible in the app without storing the raw image file directly in the main database.

Project Structure

src/
  app/
    api/                 # API routes and payment endpoints
    dashboard/           # Protected dashboard pages and role-based UI
    donation-requests/   # Public donation request pages
    login/                # Login page
    register/             # Registration page
    search-donor/         # Donor search page
    success/              # Stripe success page
  components/            # Reusable UI components
  lib/                   # Auth, Stripe, and shared helpers

Environment Variables

The .env file structure :

MONGODB_URI=
MONGODB_DATABASE=
BETTER_AUTH_URL=
NEXT_PUBLIC_API_ENDPOINT=
NEXT_PUBLIC_IMGBB_API_KEY=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_SECRET_KEY=

How to Start the Project

  1. Install dependencies

    npm install
  2. Create environment file

  3. Start the development server

    npm run dev
  4. Open your browser at:

    http://localhost:3000
    

Tech Stack

  • Next.js
  • React
  • Tailwind CSS / DaisyUI
  • Better Auth
  • MongoDB
  • Stripe
  • Lucide Icons and React Icons

Purpose

The main goal of FindRedDrop is to make blood donation support faster, safer, and more organized so that urgent requests can be handled efficiently and lives can be saved with minimal delay.

Screenshots

Homepage
Registration Page
Donor Search
Stripe Payment
Payment Success
Admin Dashboard
User Management
Request Management
Donor Dashboard
Profile

Live Demo

Frontend Live Link:
https://find-red-drop.vercel.app/

Live Site

Backend Repository

Backend Source Code:
https://github.com/pritom-banik/FindRedDrop-Backend.git

Backend Repo


  • Pritom Banik (Jun 30, 2026)

About

A modern blood donation platform built with Next.js that helps connect blood donors, patients, and supporters in a fast and secure way.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages