(CS304) Solution No 1
(CS304) Solution No 1
VUID: BC210403684
Book Code: CS304
. Identify Main Objects (Entities) of the System
• Donor
• Patient
• Blood Inventory
• Hospital
• Admin
• Donation
• Blood Request
• Blood Type
• Donor
o Attributes:
▪ donorID: String
▪ name: String
▪ age: Integer
▪ bloodType: BloodType (association with BloodType class)
▪ contactInfo: String
▪ lastDonationDate: Date
▪ eligibilityStatus: Boolean
o Functions:
▪ register(): Boolean
▪ updateProfile(): Boolean
▪ viewDonationHistory(): List<Donation>
▪ checkEligibility(): Boolean
▪ sendReminder(): Void
• Patient
o Attributes:
▪ patientID: String
▪ name: String
▪ age: Integer
▪ bloodType: BloodType (association with BloodType class)
▪ contactInfo: String
▪ medicalHistory: String
▪ bloodRequestStatus: BloodRequest
o Functions:
▪ registerRequest(): Boolean
▪ trackRequestStatus(): BloodRequest
▪ viewEligibility(): Boolean
• Blood Inventory
o Attributes:
▪ inventoryID: String
▪ bloodType: BloodType
▪ quantityAvailable: Integer
▪ expirationDate: Date
o Functions:
▪ checkAvailability(): Boolean
▪ updateInventory(): Void
▪ notifyExpiry(): Void
• Hospital
o Attributes:
▪ hospitalID: String
▪ name: String
▪ location: String
▪ contactInfo: String
o Functions:
▪ viewDonorDetails(): List<Donor>
▪ selectDonor(donor: Donor): BloodRequest
▪ placeBloodRequest(bloodRequest: BloodRequest): Void
• Admin
o Attributes:
▪ adminID: String
▪ name: String
▪ contactInfo: String
o Functions:
▪ manageDonorRegistrations(): Void
▪ manageBloodInventory(): Void
▪ handleBloodRequests(): Void
▪ sendRemindersToDonors(): Void
▪ monitorExpiryDates(): Void
• Donation
o Attributes:
▪ donationID: String
▪ donor: Donor
▪ donationDate: Date
▪ bloodType: BloodType
▪ quantity: Integer
o Functions:
▪ recordDonation(): Void
▪ viewDonationDetails(): Void
• Blood Request
o Attributes:
▪ requestID: String
▪ patient: Patient
▪ bloodTypeRequired: BloodType
▪ quantityRequested: Integer
▪ status: String (e.g., Pending, Fulfilled, Rejected)
o Functions:
▪ createRequest(): Void
▪ trackRequestStatus(): String
• Blood Type
o Attributes:
▪ typeID: String
▪ bloodType: String (e.g., A+, B-, O+, AB-)
o Functions:
▪ getBloodTypeInfo(): String
▪ checkCompatibility(bloodType: BloodType): Boolean