diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0dbcf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# Adrian +.vscode/ +.idea/ +.target/ diff --git a/docs/Use_Case/Organization.png b/docs/Use_Case/Organization.png new file mode 100644 index 0000000..d7a561f Binary files /dev/null and b/docs/Use_Case/Organization.png differ diff --git a/docs/Use_Case/Use_Case_uml.docx b/docs/Use_Case/Use_Case_uml.docx new file mode 100644 index 0000000..bc3df02 Binary files /dev/null and b/docs/Use_Case/Use_Case_uml.docx differ diff --git a/docs/Use_Case/user_case_user.png b/docs/Use_Case/user_case_user.png new file mode 100644 index 0000000..704f146 Binary files /dev/null and b/docs/Use_Case/user_case_user.png differ diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/AnonymousDonation.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/AnonymousDonation.java deleted file mode 100644 index 6f991e9..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/AnonymousDonation.java +++ /dev/null @@ -1,4 +0,0 @@ -package ntnu.sytemutvikling.team6.models; - -public class AnonymousDonation extends Donation { -} diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Charity.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Charity.java index 92ebbf1..4a389f4 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Charity.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Charity.java @@ -1,4 +1,98 @@ +/** + * This class represents a charity organization. It contains information about the charity such as its name, description, total donations, verification status, and category. + * + * @author Adrian Balunan + */ package ntnu.sytemutvikling.team6.models; +import java.util.List; +import java.util.UUID; +import java.util.ArrayList; + abstract class Charity { + /* UUID for uniquely identifying each charity */ + private UUID id; + + /* Name of the charity */ + private String name; + + /* Description of the charity's mission and activities */ + private String description; + + /* Total Donations received */ + private int totalDonations; + + /* Is the charity verified? */ + private boolean isVerified; + + /* Category for the charity */ + private String category; + + /* List that contains the charity's Feedbacks */ + private List feedbacks; + + /** + * Konstructor for creating a new charity. + * The ID is generated automatically using UUID. + * Total donations are initialized to 0. + * The charity is unverified by default. + * + * @param name + * @param description + * @param category + */ + public Charity(String name, String description, String category) { + this.id = UUID.randomUUID(); + this.name = name; + this.description = description; + this.totalDonations = 0; + this.isVerified = false; + this.feedbacks = new ArrayList<>(); + this.category = category; + } + + /** + * Getters for the charity's attributes. + */ + public UUID getId() { + return id; + } + public String getCategory() { + return category; + } + public String getName() { + return name; + } + public String getDescription() { + return description; + } + public int getTotalDonations() { + return totalDonations; + } + public boolean isVerified() { + return isVerified; + } + + /** + * Setter for verification status. + * This one sets the charity as verified. + */ + public void setVerified() { + this.isVerified = true; + } + + /** + * Setter for verification status. + * This one sets the charity as unverified. + */ + public void setUnverified() { + this.isVerified = false; + } + + /** + * Setter for total donations. This method is used to update the total donations when a new donation is made. + */ + public void setTotalDonations(int amount) { + this.totalDonations += amount; + } } diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/CharityRegistry.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/CharityRegistry.java index e69de29..a8d698e 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/CharityRegistry.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/CharityRegistry.java @@ -0,0 +1,38 @@ +package ntnu.sytemutvikling.team6.models; + +import java.util.*; + +public class CharityRegistry{ + private final List charities; + + public CharityRegistry(){ + this.charities = new ArrayList<>(); + } + + public List getAllCharities(){ + return Collections.unmodifiableList(charities); + } + + public Optional findCharityById(UUID charityId){ + if(charityId == null){ + throw new IllegalArgumentException("CharityId can not be null."); + } + return charities.stream() + .filter(charity -> charityId.equals(charity.getId())) + .findFirst(); + } + + public void addCharity(Charity charity){ + if(charity == null){ + throw new IllegalArgumentException("Charity can not be null."); + } + charities.add(charity); + } + + public boolean removeCharity(UUID charityId){ + if(charityId == null){ + throw new IllegalArgumentException("CharityId can not be null."); + } + return charities.removeIf(charity -> charityId.equals(charity.getId())); + } +} \ No newline at end of file diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Donation.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Donation.java index 1f457bd..78569b2 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Donation.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Donation.java @@ -1,4 +1,79 @@ package ntnu.sytemutvikling.team6.models; +import java.time.LocalDateTime; +import java.util.UUID; + public class Donation { + /* UUID for uniquely identifying each donation */ + private UUID charityId; + + /* Ammount of money donated */ + private double amount; + + /* Date and time of the donation */ + private LocalDateTime date; + + /* The charity that received the donation */ + private Charity charity; + + /* The user/donor that made the donation */ + private User donor; + + /** + * Is the donation made anonymously? + * This can be null if the donation was made anonymously. + * + */ + private boolean isAnonymous; + + /** + * Constructor for creating a new donation. + * The charityId is generated automatically using UUID. + * If the donation is made anonymously, the isAnonymous parameter is set to true. + * @param amount + * @param date + * @param charity + * @param donor + */ + public Donation(double amount, LocalDateTime date, Charity charity, User donor) { + this.charityId = UUID.randomUUID(); + this.amount = amount; + this.date = date; + this.charity = charity; + this.donor = donor; + + + // ASSUMES that this is the way to get the anonymous setting from the user's settings. + if (donor.getSettings().getAnonymous() == false) { + this.isAnonymous = true; + } else { + this.isAnonymous = false; + + } + } + + /* Getters for the donation's attributes */ + public boolean isAnonymous() { + return isAnonymous; + } + + public UUID getCharityId() { + return charityId; + } + + public double getAmount() { + return amount; + } + + public LocalDateTime getDate() { + return date; + } + + public Charity getCharity() { + return charity; + } + + public User getDonor() { + return donor; + } } diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/DonationRegistry.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/DonationRegistry.java index f565298..a84ec79 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/DonationRegistry.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/DonationRegistry.java @@ -1,5 +1,39 @@ package ntnu.sytemutvikling.team6.models; +import java.util.*; + public class DonationRegistry { + private final List donations; + + public DonationRegistry(){ + this.donations = new ArrayList<>(); + } + + public List getAllDonations(){ + return Collections.unmodifiableList(donations); + } + + public Optional findDonationById(UUID donationId){ + if(donationId == null){ + throw new IllegalArgumentException("DonationId can not be null."); + } + return donations.stream() + .filter(donations -> donationId.equals(donations.getCharityId())) + .findFirst(); + } + + public void addDonation(Donation donation){ + if(donation == null){ + throw new IllegalArgumentException("Donation can not be null."); + } + donations.add(donation); + } + + public boolean removeDonation(UUID donationId){ + if(donationId == null){ + throw new IllegalArgumentException("DonationId can not be null."); + } + return donations.removeIf(donation -> donationId.equals(donation.getCharityId())); + } } diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Feedback.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Feedback.java index 1cea4ca..891dce1 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Feedback.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/Feedback.java @@ -1,4 +1,65 @@ package ntnu.sytemutvikling.team6.models; +import java.time.LocalDateTime; +import java.util.UUID; + public class Feedback { + /* Feedback id */ + private UUID feedbackId; + + /** + * The author of the feedback + * If annonymous the presentation of the user will be "Anonymous". + */ + private User user; + + /* The details of the feedback*/ + private String comment; + + /* The date and time when the feedback was given */ + private LocalDateTime date; + + /* Is the feedback given anonymously? */ + private boolean isAnonymous; + + /** + * Constructor for creating a new feedback. + * + * @param user The user who gives the feedback. + * @param comment The content of the feedback. + */ + public Feedback(User user, String comment) { + this.feedbackId = UUID.randomUUID(); + this.user = user; + this.comment = comment; + this.date = LocalDateTime.now(); + + // ASSUMES that this is the way to get the anonymous setting from the user's settings. + if (user.getSettings().getAnonymous() == false) { + this.isAnonymous = true; + } else { + this.isAnonymous = false; + } + } + + /** + * Getters for the feedback's attributes. + * + * @return The feedback's attributes. + */ + public UUID getFeedbackId() { + return feedbackId; + } + public String getComment() { + return comment; + } + public LocalDateTime getDate() { + return date; + } + public User getUser() { + return user; + } + public boolean isAnonymous() { + return isAnonymous; + } } diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/PublicDonation.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/PublicDonation.java deleted file mode 100644 index 7da3000..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/PublicDonation.java +++ /dev/null @@ -1,5 +0,0 @@ -package ntnu.sytemutvikling.team6.models; - -public class PublicDonation extends Donation { - -} diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/UserRegistry.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/UserRegistry.java index da4ce2b..7b97e02 100644 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/UserRegistry.java +++ b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/models/UserRegistry.java @@ -1,5 +1,6 @@ package ntnu.sytemutvikling.team6.models; public class UserRegistry { - + + } diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/AuthenticationService.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/AuthenticationService.java deleted file mode 100644 index 5f98c21..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/AuthenticationService.java +++ /dev/null @@ -1,4 +0,0 @@ -package ntnu.sytemutvikling.team6.service; - -public class AuthenticationService { -} diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/CharityService.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/CharityService.java deleted file mode 100644 index 6bd33ce..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/CharityService.java +++ /dev/null @@ -1,4 +0,0 @@ -package ntnu.sytemutvikling.team6.service; - -public class CharityService { -} diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/DonationService.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/DonationService.java deleted file mode 100644 index bc4a7c8..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/DonationService.java +++ /dev/null @@ -1,4 +0,0 @@ -package ntnu.sytemutvikling.team6.service; - -public class DonationService { -} diff --git a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/FeedbackService.java b/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/FeedbackService.java deleted file mode 100644 index 93b2555..0000000 --- a/helpmehelpapplication/src/main/java/ntnu/sytemutvikling/team6/service/FeedbackService.java +++ /dev/null @@ -1,4 +0,0 @@ -package ntnu.sytemutvikling.team6.service; - -public class FeedbackService { -} diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/Main.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/Main.class deleted file mode 100644 index 9e9f2a3..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/Main.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/AnonymousDonation.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/AnonymousDonation.class deleted file mode 100644 index 5d26bc1..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/AnonymousDonation.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Charity.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Charity.class index 42f6e49..7803742 100644 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Charity.class and b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Charity.class differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/CharityRegistry.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/CharityRegistry.class new file mode 100644 index 0000000..61b8503 Binary files /dev/null and b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/CharityRegistry.class differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Donation.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Donation.class index 17aeae8..1fcbaea 100644 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Donation.class and b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Donation.class differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/DonationRegistry.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/DonationRegistry.class index 3974903..1b81460 100644 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/DonationRegistry.class and b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/DonationRegistry.class differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Feedback.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Feedback.class index 5dfb005..d6674b2 100644 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Feedback.class and b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/Feedback.class differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/PublicDonation.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/PublicDonation.class deleted file mode 100644 index 7bd1d8f..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/models/PublicDonation.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/AuthenticationService.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/AuthenticationService.class deleted file mode 100644 index 559ce48..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/AuthenticationService.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/CharityService.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/CharityService.class deleted file mode 100644 index c52d762..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/CharityService.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/DonationService.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/DonationService.class deleted file mode 100644 index 86d2996..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/DonationService.class and /dev/null differ diff --git a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/FeedbackService.class b/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/FeedbackService.class deleted file mode 100644 index 4b0e587..0000000 Binary files a/helpmehelpapplication/target/classes/ntnu/sytemutvikling/team6/service/FeedbackService.class and /dev/null differ