Welcome to Hayat, a blood donation website developed by a dedicated team of software engineers! Visit our deployed site to explore our platform and learn more about our journey in our final project blog article.
- Introduction
- Team and Roles
- Main Purpose
- Technologies Utilized
- Usage
- Challenges Overcome
- Team Contact
- Licensing
Hayat is a blood donation website aimed at streamlining the blood donation process and fostering transparency between blood donors and transfusion centers. Our platform provides an intuitive interface for both donors and transfusion centers to connect and contribute to life-saving efforts.
- Youssef Charif Hamidi: Database modeling and DevOps management.
- Kenansa Meseret Nigusie: Flask routes and API endpoints building.
- Blain Muema: Front-end development.
Our project, Hayat, is driven by a fundamental mission: revolutionize the blood donation ecosystem by bridging the gap between Blood Donors and Transfusion Centers. Recognizing the critical role these stakeholders play in ensuring access to life-saving blood supplies, we set out to create a platform that fosters robust coordination and accessibility.
At the heart of our endeavor lies the commitment to establish a user-friendly interface that caters to the unique needs of both Transfusion Centers and Donors. For Transfusion Centers, Hayat provides a platform to disseminate vital information such as contact details, location specifics, and real-time blood inventory statistics. By promoting transparency and accessibility, we empower Transfusion Centers to efficiently manage their resources and eventually receive blood donations right when they are needed the most.
Simultaneously, Hayat offers Donors a seamless experience, allowing them to effortlessly locate registered Transfusion Centers in their respective African cities through an intuitive filtering system. With instant access to critical data, including center locations and blood inventory levels, Donors can make informed decisions about when and where to donate. Furthermore, our innovative "Follow" feature enables Donors to track specific Transfusion Centers, facilitating swift responses to urgent blood donation needs.
In essence, Hayat project serves as a catalyst for positive change in the blood donation landscape, leveraging technology to hopefully save lives and promote community well-being across Africa.
Our project harnesses a range of cutting-edge technologies to deliver a robust and scalable solution. These include:
- Flask: A lightweight and flexible web framework for Python, providing the foundation for our application's backend logic.
- HTML/CSS/Jinja/JavaScript: Essential web technologies utilized to create dynamic and visually appealing user interfaces.
- MySQL/SQLAlchemy: A powerful combination for managing our database infrastructure, ensuring efficient data storage and retrieval.
- Nginx: A high-performance web server that serves as a critical component of our application's architecture, handling HTTP requests and optimizing resource delivery.
- Gunicorn: A WSGI HTTP server for Python web applications, facilitating the deployment of our Flask application in production environments.
- HAProxy: A reliable and versatile load balancer that enhances the reliability and scalability of our application by efficiently distributing incoming traffic across multiple servers.
- ufw (Uncomplicated Firewall): A user-friendly command-line tool for managing firewall configurations on Linux systems, providing an additional layer of security for our application infrastructure.
- unittest: The built-in Python unit testing framework used to ensure the reliability and functionality of our application's codebase.
Experience Hayat's functionalities firsthand by visiting hayat-blood-donation.tech.
- Search for registered transfusion centers by geographical filtering.
- Follow specific transfusion centers to keep track of their blood bag statistics.
- Create accounts to provide contact information, location details.
- Monitor blood inventory statistics.
We encountered difficulties with user session management, especially with the round-robin load balancing mechanism. This resulted in users losing their logged-in sessions due to requests being routed to different servers. To solve this, we implemented sticky sessions on the load balancer, ensuring consistent user sessions across servers.
Another challenge was ensuring unique IDs for donors and transfusion centers. Initially, auto-incrementing integers caused conflicts, leading to incorrect user logins. We addressed this by using the shortuuid Python module to generate unique IDs, resolving the issue seamlessly.
- Youssef Charif Hamidi : GitHub | LinkedIn | X
- Blain Muema : GitHub | LinkedIn | X
- Kenansa Meseret Nigusie : GitHub | LinkedIn | X
Hayat is licensed under the MIT License, ensuring its availability for widespread use and modification.
Note: "Hayat" means "Life" in Arabic, symbolizing the project's mission to contribute to saving lives through blood donation.