Space Monkeys' Human Blood Bank Management App
2
Team Name: Space Monkeys
Product Name: Human Blood Bank Management App
Michael Becker (csdse100, [email protected]),
Travis Byrne (Byrnetp, [email protected]),
Cyro Freire De Lima (CyroEstevao, [email protected]),
David Hughes (dahu3614, [email protected]),
Dylan Kayyem, (dylankayyem, [email protected])
Thursdays, 7:30 PM MST
Blood is meant for circulation!
The vision of the Space Monkeys is to create a blood bank management application with the goal of safely providing as many patients as possible with clean, unexpired, compatible blood so that they have the best chance of a positive health outcome if they need a blood transfusion.
Blood transfusions are a critical part of the modern health care system. According to the American Red Cross, nearly 16 million transfusions occur each year in the US. Transfusions can help save the lives of patients with cancer, hemophilia, sickle cell anemia, and other life threatening health conditions.
Blood bank administration is a complex task of trying to meet dynamic needs under a variety of constraints and criteria. This makes it a perfect application for a computerized system.
Computerized systems help to:
- reduce the time required to find a suitable match for a patient in need of blood
- reduce the potential for human error in the recordkeeping required for the blood bank administration
- provide a real-time view of blood bank inventory at various hospitals
- provide error checking when matching patients with donors
Ultimately, we are motivated to create this application to help save lives by enabling safe blood transfusions, and reduce the workload required by hospital administrators to manage the blood bank.
-
Unknown backend technology / environment
- Need to have a backend that is accessible to all team members + professor
- Need to have a backend with sufficient storage capacity to hold all of the data for the application
- Need to have a backend that has the capability to support all of the functionality that we would like to have in the application
-
New language / working environment
- 3 out of 5 team members do not have extensive front-end experience
- 3 out of 5 team members do not have extensive back-end experience
- We do not currently know the best APIs to use for the various project features
-
No prior experience working with these team members
- Communication and work styles might be different among the team members
- Different team members have different skills and strengths
- Virtual nature of the team might make it more difficult to communicate and connect with each other
- Each team member has different schedules and availabilities
-
Version Control could cause confusion
- Updating code that is out of date
- Different team members working on different branches
- Multiple team members working on the same code at the same time
-
Unknown backend technology / environment
- Contact professor to see if CU Boulder has an existing agreement with a hosting service that could provide for our project needs
- Ensure that features that we wish to put into place are supported by the backend technology that we choose
-
New language / working environment
- Leverage strengths and experience of the team members with front end experience to teach the other team members, and vice versa for backend
- Potential to use pair programming to accelerate learning of new technologies
- The experienced team members can generate documentation / guides for how to implement the different technologies / languages that they are familiar with, to enable the team members who are less familiar with those languages to get up to speed as quickly as possible
-
No prior experience working with these team members
- Slack workspace provides continuous communication channels to be able to let each team member know what you are doing
- Weekly standup meeting helps to keep all team members on the same page and provides a forum where we can talk through issues in real time as a team
- Each team member will create a "user manual" which describes how they prefer to work, how they like to communicate and receive feedback, typical working hours, etc. and Slack
-
Version Control could cause confusion
- Always do "git pull" prior to starting work each day
- Have one "master" branch for the latest working version of the code
- Always create a new branch when starting work on a new story / feature request, and then merge completed branch back into "master" branch when work is completed
- Keep team up to date through Slack and weekly standup on what code (files) each team member is working on, so that we do not have multiple team members making extensive changes on the same files
- Use Slack and weekly standup to plan out the ordering of the stories to try to minimize overlap / potential for merge conflicts
- Descriptive commit messages help to create a log of the changes made by each of the team members and why
We are choosing to use the Scrum methodology to organize our project throughout the semester. We plan to start with 2 week sprints with the potential to change to a 1 week sprint if needed, based on project progress and/or deadlines. For each sprint, we will elect a scrum master and do a planning session at the beginning of the sprint, as well as a retrospective / lookback at the end of the sprint. We will use the Kanban method to maintain a visual project board to be able to see the status of each of the stories (to do, in progress, done) using the Trello software.