City One Blood Donation Network : This app serves as a vital tool to bridge the gap between blood donors and those in need, promoting a robust and efficient blood donation ecosystem
My team teammate Christine and I are adult volunteers of St. John Ambulance Kenya, our division, which is the basic unit of the order is called city one.
The adult volunteers form a core part of our timely and effective response to disasters, wherever in the country they may be. Their high level of discipline and commitment ensures St John is always at the forefront of caring for our community.
The mission of the Order of St. John is to prevent and relieve sickness and injury and to act to enhance health and well being of people of all races and creeds anywhere in the world
Offering First Aid and emergency care at accidents and incidents, offering professional and life-saving pre-hospital care in these difficult times.
Beyond that, the volunteers give community and hospital service, First Aid cover at national and public events as well as caring for the sick in the communities where they live through our Community Health programme.
As volunteers we build the city One Network app to revolutionize blood donation in Kenya by connecting donors and recipients seamlessly, ensuring that life-saving blood is always available when and where it is needed the most. Together with the Ministry of Health and St. John Ambulance Services volunteers, this app empowers communities to save lives and contribute to a healthier Kenya.
To convince St. John Ambulance and the Ministry of Health in Kenya to use the City One Blood Donation Network app regularly and potentially acquire it, we'll knew we needed to focus on demonstrating the app's value and addressing their specific needs and concerns , more importantly, integrating security features using Pangea's APIs would enhance their confidence in the app and roll in out to the entire country.
Key Features:
-
User-friendly Interface:The app boasts an intuitive and user-friendly interface, ensuring easy navigation for both donors and recipients.
-
Donor Registration:Individuals can register as blood donors, providing their information and medical history to help maintain a comprehensive donor database.
-
Real-time Donor Locator:The app enables real-time tracking of available blood donors within a specified radius, ensuring timely access to life-saving blood supplies.
-
Appointment Scheduling: Donors can schedule blood donation appointments at their convenience, reducing waiting times and ensuring a steady supply of blood.
-
Emergency Requests: Hospitals and medical facilities can send emergency blood requests directly through the app, instantly notifying nearby donors who match the required blood type.
-
Blood Type Compatibility: The app checks donor blood types against recipient requirements, ensuring safe and accurate blood transfusions.
-
Health Records:Donors can maintain their health records, allowing for easy monitoring and notifications for future donations.
-
Notifications:Users receive timely reminders for upcoming appointments, eligibility to donate, and critical updates on blood shortages or emergencies.
-
Community Engagement: The app encourages community engagement through gamification, challenges, and events to motivate regular blood donations.
-
Information Hub: It provides educational content about the importance of blood donation, guidelines, and FAQs to dispel myths and misconceptions.
-
Feedback and Rating: Users can rate their donation experience, helping to improve services and enhance transparency.
-
Analytics and Reporting:The Ministry of Health can access comprehensive analytics and reports to make informed decisions, optimize blood donation campaigns, and allocate resources effectively.
-
Privacy and Security:* Robust security measures are in place to protect user data and maintain confidentiality.
Christine my team mate came up with the UI/Ux using figma and gimp, she is our UX?UX star.
I implement her designs using React Native so that the app can work well on android, IOS and web, this is because Kenya hasa bigger mble penetration than other platform, we had to go with mobile first.
The API is built using Nodeejs , mongoDB and delpoyed on Google cloud platform, Pangea Node.js SDK made our work much easier !
The team mates are busy, Christine is an Nurse and I'm a fulltime engineer, finding the time to thoroughly studying Pangea's security platform and APIs documentation. Understand the capabilities and functionalities they offer, including authentication, audit logging, secrets management, and sensitive data removal took lots of our time that we expected, family time suffered!
Integrating security features using Pangea's APIs enhanced members confidence in the app
By taking security steps and presenting a compelling case, we can increase the likelihood of St. John Ambulance and the Ministry of Health in Kenya using the app regularly and considering its acquisition.
Increase the likelihood of St. John Ambulance and the Ministry of Health in Kenya using the app regularly and considering its acquisition.
week 1
- Ideation - to come up with a Project idea personas
- Breakdown your project into tasks
- Report the total number of tasks for the project
- Assign tasks to all te team members
- Plan and scedule stand ups within your team
- Plan a weekly Demo schedule with your Supervisor
- Set up your Github repo for te project
Other weeks
- Sprint planning
- Coding
- Code Review
- Deployment
- Sprint Review
The project is using Expo React native
npm i
npm expo start
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install git sudo npm install pm2 -g
Find the App Useful? You can always buy me a coffee at payoneer:imbugad@gmail.com
npm run install-dependencies-
rename .env.temp to .env
-
setup values for - MONGO_URL, JWT_SECRET, JWT_LIFETIME, PANGEA_REDACT_TOKEN, PANGEA_AUTHN_TOKEN, PANGEA_EMBARGO_TOKEN, PANGEA_DOMAIN
-
Pangea -> Set up environment variables (Instructions) PANGEA_REDACT_TOKEN, PANGEA_AUTHN_TOKEN, PANGEA_EMBARGO_TOKEN and PANGEA_DOMAIN with your project token configured on Pangea User Console (token should have access to Embargo service Instructions) and with your pangea domain.
npm start-
visit url http://localhost:80/
Back-end and GCP setup (Node.Js )
-
Create VM ,
-
Configure API's runtime environment
- Node - Node.js is a back-end JavaScript runtime environment, runs on the V8 JavaScript Engine, and executes JavaScript code outside a web browser.Node.js binary distributions are available from NodeSource.https://github.com/nodesource/distributions
package-manager#debian-and-ubuntu-based-linux-distributions
- PM2 - ADVANCED, PRODUCTION PROCESS MANAGER FOR NODE.JS PM2 is a daemon process manager that will help you manage and keep your application online 24/7 https://pm2.keymetrics.io/
-
Git clone repo
-
In the project directory,
- Setup .env file ==> touch .env && nano .env -> copy paste secrets & save
- Run npm install ---> npm i
- Run pm2 ------- sudo pm2 start server.js && sudo pm2 monit
- server > Server is listening on port 80...
-
Configure load balancing for the API with your domain name
Mobile Setup (React Native)
- Use EAS to deploy to play store
-
-url--> https://github.com/Domminique/chapchap_api_v1
- We will host the project on a public code repository platform like GitHub, ensuring visibility for the judges to review the code.
- The code repository will contain the entire project, including frontend code, backend configurations, and any additional scripts or resources.
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install git sudo npm install pm2 -g
Project in Action - Jobify
Find the App Useful? You can always buy me a coffee
npm run install-dependencies- rename .env.temp to .env
- setup values for - MONGO_URL, JWT_SECRET, JWT_LIFETIME
npm start
- visit url http://localhost:3000/
- We will create a high-level architecture diagram illustrating the components and their interactions within the app.
- The diagram will showcase the integration of MongoDB Atlas, Google Cloud products, and other relevant services or APIs used in the app.
Brief description: City One Blood Donation Network app - (city one is a division in St.John Ambulance, Nairobi Region, Kemya)
An health care platform that enables African blood donors, hospitals and health workers to sell products online.
- Hospitals can search for and match blood donors based on location langauge, skills, goals, and country
- Pricing will be individualised based on organizations preference and demand , it will be free for not-for-profit and charity orgarnisations
- Strong social media interration with reviews, posts and analytics
- Managers can upload farmer and buyers in pdf, json or excell data formats
a. Hospital Manager b. Blood Donor c. Blood in_need
Ibrahim is a busy working paramedic who wants to access city one bdapp and make sure that he can see all blood donation activities of his Program. He also uses city one bdapp to see engagement reports, detailed meeting lists, graphics, custom reports. He also uses the mobile app to automate meeting and calls with blood donors and buyers. Ibrahim wants to save time and money, and he wants a blood donors Management platform that gives his time back.
Dominic is a farmer and a busy start-up founder who wants to send direct messages or join video calls his buyers and to explore tools that will save him time and learn in the process . Dominic likes to perform all operations on her phone.
Search for for blood donors and buyers
As a Hospital Manager , I want to search for blood donors and buyers of my blood donation program , see engagement reports, detailed meeting lists, graphics, custom reports of all blood donation activities.
Check useful graphics As a farmer, I want to Check useful graphics to measure my blood donation program.
Check useful graphics
- available 99.95%
- 5% of requests complete in under 300 ms
- Fraction of 200 vs 500 HTTP responses from API endpoint measured per day
- Time to last byte GET requests measured every 10 seconds aggregated per minute
A diagram showing your application's microservices and their connections.
services and their resources and operations .
Account Service
transaction
list deposit withdraw transfer
NoSQL
Strong M
20GB
MongoDB Atlas
Account
Yes
No
Google Cloud load balancer product(s) for each service.
diagram that depicts how your services will communicate over the network. Include regions, zones, load balancers, CDN, and DNS if applicable
Even if some service is down, we want the web frontend of our application to be available nearly all the time. We also want the website to be fast with very low latency to users all over the world. On the next slide, draw a diagram that depicts how we can achieve this using Google Cloud services.
We've deployed for high availability by replicating resources in multiple zones. However, to meet regulatory requirements, We need a plan to recover from a disaster that brings down the entire region. The current architecture is depicted below.So we create a plan to bring up your application in another region if our main region is down.
Ratings Service
Programmer deleted all ratings accidentally
24 hours
1 hour
Med
blood donors Service
blood donors database crashes
0 (can’t lose any data)
2 minutes
High
Ratings Database
Daily automated backups
Multi-Regional Cloud Storage Bucket
Run Restore Script
Orders Database
Failover replica plus daily backups
Multi-zone deployment
Automated
A diagram that depicts how we will secure your services. Include firewalls, IAM roles, service accounts and network resources as appropriate.
We Use the pricing calculator to determine and record on the next slide the cost of your microservices.
Accounts
MongoDB Atlas + 2 VMs + Load balancer
$574.71/month