Explained from zero — for someone who has never heard of a platform like this before.
When a hospital needs blood, Raktify finds it — first from blood-bank fridges, then from living donors nearby, and it keeps going until someone says yes.
The problem today, without Raktify
A patient needs blood. The hospital’s blood bank doesn’t have that group. The family starts running — calling relatives, posting in WhatsApp groups, driving between blood banks, asking strangers. Hours pass. Nobody has a list. Nobody knows who already said no.
Raktify replaces that panic with a system. Everything below explains how.
The cast Who is in this story?
π€
The patientIn a hospital bed. Needs blood. Never uses Raktify directly β everything happens around them.
π₯
The hospitalBlue in diagrams. Asks for blood. The only one who can start a request.
π§
The blood bankRed in diagrams. Has fridges with blood bags and a lab that tests blood. The only one who can make a donor "real".
πͺ
The donorGreen in diagrams. An ordinary person willing to give blood. Contacted on WhatsApp only when truly needed.
π§βπΌ
The coordinatorPurple in diagrams. Raktify's human in each district. Watches every request, can override the machine.
π€
The community leaderAmber in diagrams. A trusted local person (village head, temple committee, alumni group) who brings donors in and hosts camps.
βοΈ
Raktify itselfGrey in diagrams. The software. Searches, matches, messages, keeps time, and never sleeps.
Three fixed doors The whole platform has exactly one way in, one gate, and one way out
π₯ β
THE ONLY ENTRY
A hospital raises a blood request. Nothing starts any other way.
π§ͺ β‘
THE ONLY DONOR GATE
A donor becomes "real" only when a blood bank uploads their tested blood report. Signing up alone means nothing.
Blood transfused into the patient. That is the only success. Everything else is a step or a safety net.
Keep these three symbols in mind β they appear in the diagrams below with thick black borders.
The big picture Two worlds: peace time and emergency time
The secret of Raktify is that it runs two separate machines:
π± Peace time β quietly, every day: people sign up as donors, camps collect blood, fridges get stocked. Nothing urgent. This is preparation.
π¨ Emergency time β when a hospital asks: check the fridges first, wake donors only if fridges can't cover it, deliver.
Emergency time is fast only because peace time already did the hard work. That is the whole idea of the platform in one sentence.
β’ rounded box = an actionβ diamond = a questionβ£ thick black border = one of the 3 fixed doors- - β dashed arrow = "feeds into"
One line to remember: peace time fills the tank; emergency time empties it carefully. Six small flows below explain each piece β with the flow number they hand over to.
Flow 1 β Becoming a donor How does an ordinary person enter the system?
Anyone can raise their hand through four doors. But raising your hand does not make you a donor β it only means "I'm willing". Raktify will never call an unverified person for an emergency, because nobody has proof of their blood group or health yet.
Condition
What happens
Person claims a blood group at sign-up
Stored as "self-reported", shown with an Unverified badge. Never used for matching. Only the lab-verified group counts.
Same mobile signs up twice
Blocked β one donor account per mobile number.
Suspected duplicate (same name + birth date)
Flagged for the admin to review; registration still goes through.
Came via a camp QR or community link
The camp / community leader gets credit for bringing them in β that's how we measure grassroots impact.
One line to remember: signing up = raising your hand. Only the blood bank's lab report (β‘) makes you a donor. Hands over to: Flow 5 (the testing gate) and Flow 3 (the pool of people who can be called).
Flow 2 β The hospital asks What happens the moment a patient needs blood?
A doctor decides the patient needs blood. Hospital staff fill one form on Raktify: blood group, how many units, needed by when, and how urgent. The moment they press submit, three things happen in the same second β automatically, before any human moves.
Urgency
Meaning in plain words
Will donors be woken?
How long do banks get first?
π’ Planned
"Operation is scheduled, we know in advance."
Never
No timer β fridges only. If the date comes close and it's still unfilled, Raktify automatically upgrades it to Urgent.
π‘ Urgent
"We need it today."
Yes, if fridges can't cover it
30 minutes
π΄ Critical
"The patient may not survive the wait."
Yes, if fridges can't cover it
3 minutes β and the coordinator's phone buzzes immediately so a human is watching from second one.
One line to remember: one form, three automatic reactions, zero phone calls by the family. Hands over to: Flow 3 (fridges) with the clock from Flow 4 already running.
Flow 3 β Fridges first Why disturb a donor if the blood already exists in a fridge?
Raktify knows what every blood bank's fridge holds. But here is the platform's most important manner: it never takes blood from a fridge β it asks. Like asking a shopkeeper "do you have this?", never reaching behind the counter yourself. Each blood bank with matching stock sees the request on its screen and chooses its own answer.
Bank's answer
Effect on this request
Effect on donor routing (Flow 5)
β Yes β full amount
All bags set aside. Donors never woken. β Flow 7.
β
β Yes β part of it
Those bags set aside; the missing part continues to Flow 4.
Bank stays available for donors.
π Yes with replacement
Same as yes, plus a "units owed back" record with a deadline (~14 days). Later, donors get a softer invitation to fill the debt β it is not an emergency message.
Bank stays available.
β No stock (NS)
Out of fulfilment.
Still listed β an empty fridge can still take a fresh donation from a walk-in donor.
β No capacity (NC/ND)
Out of fulfilment.
Removed β no staff/machine to receive donors either.
πΆ No answer
Clock decides (3 or 30 min), then Flow 4.
Stays listed.
β Every bank declines
The wait is pointless β donor alerts fire immediately.
NS banks stay listed.
One line to remember: Raktify asks, never takes. The banks stay in control of their own fridges β that is why they trust the platform. Hands over to: Flow 7 if covered, Flow 4 if not.
Flow 4 β Waking the donors Who gets the message, and why not everyone?
Donors are the platform's most precious resource. Message them too often and they mute you β then nobody comes when it truly matters. So Raktify never broadcasts. It builds a shortlist of at most 20 people, chosen by six checks, and messages only them. If they don't respond, the next 20. And before anything fires, the coordinator gets a heads-up with the power to pause.
One line to remember: spend donors like money β carefully, and only on real needs. Hands over to: Flow 5 (the message and the yes). Falls back to: Flow 8 if the shortlist is empty.
Flow 5 β The donor says yes What does the donor actually see, and what happens next?
The donor gets one WhatsApp message: which blood is needed, at which blood bank, and how far that is from where they are standing. One tap opens a page β no app, no password, no OTP. They pick the blood bank they'll visit, and that bank's screen immediately shows "a donor is on the way".
Detail
Why it's designed this way
No login on the alert page
A 45-year-old farmer at a bus stop will not remember a password. The link itself is the key β personal, time-limited, single-purpose.
Distance from current location, not home village
People travel. What matters is how far they are right now.
"No stock" banks still appear in the list
An empty fridge is exactly where a fresh donation helps most.
48-hour arrival window
Enough for a working person to plan; short enough that the patient isn't left waiting on a promise nobody will keep. After 48 h it's marked no-show and the next donors are called.
The patient's name is never shown
Privacy both ways: donors never see patient details; hospitals never see donor phone numbers.
One line to remember: one tap for the donor, full visibility for the bank. Hands over to: Flow 6 (arm to bag) β or loops back to Flow 4 / escalates to Flow 8.
Flow 6 β From arm to usable bag Why can't donated blood be used immediately?
Blood from an arm is never given straight to a patient. Every single bag β whether from an alert donor, a camp, or a walk-in β passes the same gate: quarantine, then five disease tests, then a second person's sign-off if anything looks wrong. This gate is also the exact moment an unverified person becomes a real donor (door β‘). The rules live inside the database itself, so no software bug and no rushed staff member can skip them.
One line to remember: no test, no blood β no exceptions, not even in an emergency. Hands over to: Flow 7 (the bag travels) and back to Flow 1 (a newly verified donor joins the pool).
Flow 7 β Reaching the patient The last kilometre β and the only real finish line
A cleared bag is set aside for this specific patient, sent to the hospital, and checked one final time at the bedside β a crossmatch, mixing a drop of the patient's blood with the bag to prove they agree. Only then is it transfused. That transfusion is the platform's only definition of success.
One line to remember: the request is not "done" when blood is found β only when it is inside the patient. Ends the journey that began in Flow 2.
Flow 8 β When things don't go smoothly What if nobody responds? What if plans change?
Real life is messy: donors don't show up, requests get cancelled, bags expire. Raktify has a safety net for each. Two kinds: the widening circle (find help further away) and the janitors (automatic clean-up jobs that run day and night).
The widening circle β when the district isn't enough
The janitors β automatic clean-up, day and night
Situation
Automatic response
Hospital cancels (any time before the bag is issued)
Every reserved bag instantly released for other patients Β· pending alerts stop Β· request marked cancelled.
A reserved bag isn't collected in time
Reservation released β the bag goes back to AVAILABLE for others.
A bag crosses its expiry date
Marked EXPIRED. The system physically cannot issue it β the block is in the database, not just in the app.
A Planned request comes close to its needed-by date unfilled
Automatically upgraded to Urgent β the donor machinery (Flow 4) switches on.
A donor's 90-day rest completes
Friendly WhatsApp: "you're eligible to donate again."
A request sits unfulfilled too long at any ring
Escalated to the next ring automatically.
One line to remember: no request is ever forgotten and no bag is ever wasted silently β something is always watching. Wraps around: Flows 3β7.
Flow 9 β Camps Filling the tank before the emergency
Everything above is demand-side: a patient needs blood now. Camps are the supply-side: collect many units on a good day, so that on a bad day the answer is already sitting in a fridge. Camps also bring in new donors β someone who donates at a camp walks out as a verified donor without ever visiting a website first.
Operations note: today, the blood bank's team + cold-chain availability for a camp date is confirmed offline before approval. Routing that confirmation through the platform itself is a planned next-phase feature.
One line to remember: camps are savings; emergencies are withdrawals. Feeds: Flow 1 (new donors) and Flow 3 (stocked fridges).
How the nine flows connect The dependency map β one glance, whole platform
Appendix β for the technical team Exact values behind the story above
Story phrase
Exact system value
"banks get 3 / 30 minutes first"
DONOR_ALERT_WINDOW_CR_MIN=3 Β· DONOR_ALERT_WINDOW_UR_MIN=30 (tunable per env)
"max 20 people per shortlist"
DONOR_ALERT_POOL_SIZE_CAP=20
"not bothered too often"
fatigue cap over trailing 7 days + cool-off after an ignored alert
"90-day rest"
next_eligible_date = last donation + 90 days; enforced in pool query AND at BB donation entry
"48 hours to arrive"
donor_alert_choices.deadline_at = accept + 48 h β NS on expiry
"replace it later, ~14 days"
replacement_obligations, default deadline 14 days, per BB per request
"the widening circle"
escalation rings 1β5: district β state 150 km β adjacent states (rare β national) β DHO β NGO-admin voice call (critical, 30 min unresolved)