- Developed A Robust Restful API For Blood Donation Management.
- Having Main & Spring-Security Branches
- Implemented Email Notification Interation
- Implemented A Comprehensive System For Tracking Donor Information, Appointments, And Medical History.
- Utilized Java And Relevant Frameworks To Build The API, Ensuring Scalability And Performance.
- Designed Entities/Models For Donor, BloodBank, Staff, Appointment, MedicalHistory, And Donation.
- Incorporated Features Such As Donor Registration, Appointment Scheduling, And Medical History Recording.
- Established Relationships Between Entities To Maintain Data Integrity And Consistency.
- Implemented Security Measures To Protect Sensitive Information And Ensure Data Privacy.
- Created Endpoints For CRUD Operations On Various Entities, Providing A User-Friendly Interface For Interactions.
- Ensured Proper Error Handling And Response Messages For A Smooth User Experience.
- Optimized Database Interactions For Efficient Data Retrieval And Storage.
- Conducted Thorough Testing To Validate Functionality, Security, And Overall System Stability.
- Documented The API For Easy Integration And Future Maintenance.
- Addressed Challenges With Innovative Problem-Solving And Continuous Improvement.
- Excited To Contribute To The Healthcare Ecosystem With The Blood Donation API? Download This Project And Start Running Setup .
bloodDonation.organisation.Id=${ORG_ID}
bloodDonation.organisation.name=${ORG_NAME}
bloodDonation.organisation.website=https://sayeedthedev.web.app
bloodDonation.organisation.PhoneNumber=${NUMBER}
bloodDonation.organisation.Location=${LOCATION}
bloodDonation.organisation.OrganisationEmail=${EMAIL}
bloodDonation.organisation.OrganisationEmailPassword=${PASSWORD}
# DataSource Configuration
spring.datasource.url=jdbc:mysql://${PROD_DB_HOST}:${PROD_DB_PORT}/${PROD_DB_NAME}
spring.datasource.username=${PROD_DB_USERNAME}
spring.datasource.password=${PROD_DB_PASSWORD}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-
Appoint: Manages donor appointments, schedules, and confirms donation appointments.
-
Donor: Responsible for collecting and maintaining donor medical histories, including any relevant conditions, medications, and allergies.
-
Phlebotomist/Nurse: Draws blood from donors safely and efficiently during donation events.
-
Manager: Oversees the overall operations of the blood donation camp or organization, ensuring smooth coordination among staff, volunteers, and donors, and handling any issues that may arise.
-
Base URL:
/api/v1/donor
-
POST
createDonor
- @Require Donor
- @Return HttpStatus.Code
-
GET
showDonor
- @Return HttpStatus with Donor
-
GET
/{donorId}
- @Param
donorId
: Integer, the unique identifier of the donor - @Return HttpStatus
- @Param
-
DELETE
/{donorId}
- @Param
donorId
: Integer, the unique identifier of the donor - @Return HttpStatus
- @Param
-
PATCH
updateDonor
- @Require Donor
- @Return HttpStatus
-
-
Base URL:
/api/v1/appointment
-
POST
createAppointment
- @Require Appointment, Integer donorId
- @Return HttpStatus
-
GET
showAppointment
- @Return HttpStatus With Appointment
-
GET
/{appointmentId}
- @Param
appointmentId
: Integer, the unique identifier of the appointment - @Return HttpStatus With Appointment
- @Param
-
DELETE
/{appointmentId}
- @Param
appointmentId
: Integer, the unique identifier of the appointment - @Return HttpStatus
- @Param
-
PATCH
updateAppointment
- @Require Appointment, Integer id
- @Return HttpStatus
-
GET
todayAppointments
- @Return List of Todays Appointment
-
GET
doAppointDonor
- @Return List of Donors Who are Not Appointed Yet
-
GET
findByDate
- @Require date (LocalDate)
- @Return List of Appointments
-
-
Base URL:
/api/v1/medicalHistory
-
POST
createHistory
- @Require MedicalHistory, Integer donorId
- @Return HttpStatus
-
GET
showHistory
- @Return HttpStatus With MedicalHistory
-
GET
/{historyId}
- @Param
historyId
: Integer, the unique identifier of the medical history - @Return HttpStatus
- @Param
-
GET
findByDonor/{donorId}
- @Param
donorId
: Integer, the unique identifier of the donor - @Return HttpStatus
- @Param
-
DELETE
/{historyId}
- @Param
historyId
: Integer, the unique identifier of the medical history - @Return HttpStatus
- @Param
-
PATCH
updateHistory
- @Require MedicalHistory
- @Return HttpStatus
-
-
Base URL:
/api/v1/Staff
-
POST
createStaff
- @Require Staff
- @Return HttpStatus
-
GET
showStaff
- @Return HttpStatus With Staff
-
GET
/{staffId}
- @Param
staffId
: Integer, the unique identifier of the staff - @Return HttpStatus
- @Param
-
DELETE
/{staffId}
- @Param
staffId
: Integer, the unique identifier of the staff - @Return HttpStatus
- @Param
-
PATCH
updateStaff
- @Require Staff
- @Return HttpStatus
-
PATCH
updateStaffPosition
- @Require Staff
- @Return HttpStatus
-
-
Base URL:
/api/v1/Donation
-
POST
createDonation
- @Require Donation, Integer appointId
- @Return HttpStatus
-
GET
showDonation
- @Return HttpStatus With Donation
-
GET
/{donationId}
- @Param
donationId
: Integer, the unique identifier of the donation - @Return HttpStatus With Donation
- @Param
-
PATCH
updateDonation
- @Require Donation, Integer donationId
- @Return HttpStatus
-
-
Base URL:
/api/v1/BloodBank
-
POST
createBank
- @Require BloodBank, Integer bloodBankId
- @Return HttpStatus
-
GET
showBank
- @Return HttpStatus With BloodBank
-
GET
/{bloodBankId}
- @Param
bloodBankId
: Integer, the unique identifier of the BloodBank - @Return HttpStatus With BloodBank
- @Param
-
PATCH
updateBloodBank
- @Require BloodBank, Integer bloodBankId
- @Return HttpStatus
-