Vein-to-Vein is an open source software to manage blood related information from the point of donation to its use
HTML JavaScript Java CSS PHP ActionScript Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.


C4G Vein-to-Vein (V2V) is a project started at Georgia Institute of Technology as part of the Computing For Good (C4G) Program at Georgia Tech.


V2V is a software to manage blood related information from the point of donation through testing, storage to its eventual usage in a hospital or a clinic. Handling of blood is a sensitive operation and record of movement of blood as it goes through the following chain is critical to the effective functioning of blood processing centers. This solution is primary targeted for deployment in the developing countries of Africa where much of the blood inventory tracking is done on paper.

![Lifecycle of Donated Blood] (

The software is being developed at Georgia Tech as part of the C4G program in collaboration with Centers for Disease Control and Prevention (CDC), Safe Blood for Africa (SBFA) and the participating countries of Africa.

[Video Introduction to V2V] (

Problems related to blood supply in Africa

  • Unsafe blood can lead to disease transmissions
  • Insufficient supply of Safe Blood in hospitals point-of-care
  • Higher number of individuals living with HIV in Africa
  • Shortage of blood
  • Many countries of Africa depend on paper based systems to track the movement of blood through the blood processing chain

[This factsheet] ( from WHO discusses the problems related to blood safety and availability specifically the developing countries of Africa in greater detail.


  • Transitioning from a paper based system to a computer based system can take time and experience
  • Varying blood processing practices across different countries
  • Unreliable Internet connectivity
  • Developing intuitive and easy-to-use admin. Cannot depend on an onsite admin to configure databases.


The challenges listed above have influenced the design of V2V and the following design features have resulted.

  • Develop a browser based but locally deployable solution to avoid dependence on Internet
  • Smaller upgrade package size to allow
  • Make features configurable so that blood processing centers can turn them on/off based on their current practice
  • A single installer which installs and configures all dependencies like Java, MySQL, Apache Tomcat etc. to make first time configuration simple.

Many other design decisions in the future will be influenced by the same parameters.

Development Environment

  1. This repository contains some Eclipse specific configuration. If you are comfortable using Eclipse then setting up your development environment will be relatively easier. You may use another IDE if you wish to.
  2. You will also need to setup a MySQL database and specify this configuration in the following files:
    • V2V/src/ should contain your database connection information. Please note this should be an untracked file.
    • V2V/war/WEB-INF/classes/META-INF/persistence.xml should contain your database connection information
    • V2V/war/ Should contain the path of your MySQL binaries and database connection information, used to create backup programmatically from inside the webapp
    • You may use the script V2V/ to setup your database intially. Note this script will work only a linux system. If you are developing on Windows then you may have to write a new batch script. The file ddl_mysql.sql is autogenerated using the class V2V/src/datagenerator/SchemaGenerator.

Important Coding Conventions

  • Use spaces instead of tabs for formatting. You may configure your IDE to use spaces instead of tabs for all files Java, XML, HTML, JS. To setup Eclipse to do this for you by default you may read [this] ( This will ensure uniform rendering of files across editors.
  • Use 2 spaces to indent your code. Java code tends to have long variable names and hence it is easier to read code with smaller indentation.